1. 程式人生 > >【安全牛學習筆記】HTTP協議

【安全牛學習筆記】HTTP協議

信息安全 http security+ 互聯網

http協議基礎

1. HTTP概述
眾所周知,Internet的基本協議是TCP/IP協議,目前廣泛采用的FTP、Archie Gopher等是建立在

TCP/IP協議之上的應用層協議,不同的協議對應著不同的應用。
HTTP(Hyper Text Transfer Protocol - 超文本傳輸協議)是一個屬於應用層的面向對象的協議,

由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它的發展是萬維網協會(World Wide Web Consortium)和Internet工作小組IETF(Internet Engineering Task Force)合作的結果, (他們)最終發布了一系列的RFC,RFC 1945定義了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定義了今天普遍使用的一個版本——HTTP 1.1。。

1.1 HTTP協議特點
支持客戶/服務器模式。
簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。

由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶 的應答後,即斷開連接。采用這種方式可以節省傳輸時間。
無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著 如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方 面,在服務器不需要先前信息時它的應答就較快。

1.2 HTTP協議的運作方式

HTTP協議是基於請求/響應範式的。一個客戶機與服務器建立連接後,發送一個請求給服務 器,請求方式的格式為,統一資源標識符、協議版本號,後邊是 MIME信息包括請求修飾符、客戶 機信息和可能的內容。服務器接到請求後,給予相應的響應信息,其格式為一個狀態行包括信息的 協議版本號、一個成功或錯誤 的代碼,後邊是MIME信息包括服務器信息、實體信息和可能的內 容。(以下使用Wireshark抓取)

2. HTTP請求格式(Request)當瀏覽器向Web服務器發出請求,它想服務器發送一個數據塊,也就是請求信息.HTTP請求信息

由三部分構成

請求方法、資源標識符和協議版本 請求頭(Request Header)
請求正文(參數)

 下面根據請求百度的例子去說明

在HTTP請求中 首先從客戶端到服務器的請求消息包括應用到資源的方法、資源的標識符和使用

的協議版本。GET /HTTP/1.1

如果Request-URI是absoluteURI,主機是 Request-URI的一部分。 則乎略請求中的任何Host頭部 域值。
如果Request-URI不是absoluteURI,且請求包括 Host 頭部域,則主機由 Host 頭部域值決定

請求頭(Request Header)
在例子中hots/user-agent /accept/accept-Lanuage 等都為Header域。
請求正文(參數) 第三部分,空行(\r\n),即使不存在請求主體,這個空行也是必需的.如果使用POST就

可以看去。
3. HTTP響應格式(Response)

當Web服務器根據客戶端的請求做出響應,HTTP響應信息由三部分組成:

協議版本/響應碼
響應頭(Response Header) 響應正文

 同樣接著上次請求去抓取百度的響應。

協議版本/響應碼 HTTP/1.1 200 OK
響應頭(Response Header) Date/server/content-Length/connection 等
響應正文 就是\r\n CRLF(回車換行) 下面的 就是html頁面當然也可能是其他形式。4. 請求頭(Request Header)

這裏只是簡單的羅列一下Header的功能不做詳細說明,將在以後的文章做進一步的研究
Host www.baidu.com 主機域名以及端口(80缺省)
User-Agent 用戶代理信息 用於統計用途、協議侵害跟蹤和自動識別用戶代理 格式 User-Agent: <product>[/<version>] 例子: Mozilla/5.0 Firefox/3.6.12 FirePHP/0.5
Accept 指定響應可接受的確認媒體類型
Accept-Language 限制請求所選擇的作為響應的自然語言集
Accept-Encoding 限制請求所選擇的作為響應的Content-Encoding types
Accept-Charset 能夠用來指出響應可接受的字符集
Keep-Alive 使客戶端到服務器端的連接持續有效,當出現對服務器的後繼請求時,避免了建立或 者重新建立連接
Connection允許發送方指定希望的連接選項 close/keep-alive
Cookie 這個會在以後做一個詳細的說明
Referer 是可選的 用戶客戶端向服務端發送上一次鏈接,用戶根據和統計 他可以用於防止CSRF (Cross-site request forgery 跨站請求偽造)以及盜鏈,但也不是萬能的。
5. 響應頭(Response Header)
Date Fri, 10 Dec 2010 03:21:46 GMT 表示消息發生的日期和時間 以RCF 1123[8]的格式發送
Server 服務端服務器信息 BWS/1.0 百度自己研發的或者改進的
Content-Length 指定響應正文的長度大小
Content-Type 指定響應正文MIME的類型以及編碼 服務可以去控制 text/html text/xml text/

html;charset=gb2312
Cache-Contol 用於控制HTTP緩存(在HTTP/1.0中僅僅實現了Pragma: no-cache)
Public 指示響應可被任何緩存區緩存。
Private 指示對於單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許服務器僅僅描述 當用戶的部分響應消息,此響應消息對於其他用戶的請求無效。
no-cache 指示請求或響應消息不能緩存(HTTP/1.0用Pragma的no-cache替換)

Expries 給出相應被認為過期的日期和時間
Content-Encoding 文檔的編碼方法。只有在解碼之後才可以得到Content-Type頭指定的內容類 型。利用gzip壓縮文檔能夠顯著地減少HTML文檔的下載時間
Connection 連接選項 close/keep-alive

6. 狀態碼介紹 狀態碼主要分為5大類

下面詳細列出5類狀態碼 信息類

表示收到Web瀏覽器請求,正在進一步的處理中 表示請求成功地接收表示用戶請求被正確接收,理解和處理例如:200 OK

1×× 信息類
2×× 成功類
3×× 重定向類
4×× 客戶端錯誤類 表示客戶端提交的請求有錯誤 例如:404 NOT Found,意味著請求中所引用 的文檔不存在。
5×× 服務器錯誤類 表示服務器不能完成對請求的處理:如 500

100 繼續
成功類
200 OK
202 接收
204 無內容
206 部分內容
重定向類
300 多路選擇
302 暫時轉移
304 未修改(Not Modified)305 使用代理

客戶方錯誤類
400 錯誤請求(Bad Request)401 未認證 402 需要付費403 禁止(Forbidden)
404 未找到(Not Found)
405 方法不允許 406 不接受407 需要代理認證 408 請求超時409 沖突 410 失敗

表示請求沒有成功,客戶必須采取進一步的動作。

101 交換協議

201 已創建
203 非認證信息

205 重置內容

301 永久轉移303 參見其它

411 需要長度
413 請求實體太大
415 不支持媒體類型
服務器錯誤類
500 服務器內部錯誤
501 未實現(Not Implemented)502 網關失敗
504 網關超時
505 HTTP版本不支持7. HTTP請求方法

HTTP1.1 總共定了8個公用方法

OPTIONS Fri, 10 Dec 2010 03:21:46 GMT 表示消息發生的日期和時間 以RCF 1123[8]的格式發送 HEAD 向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不 必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息
GET 向特定的資源發出請求

POST 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體 中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
PUT 向指定資源位置上傳其最新內容。出於安全考慮,大多數服務器不支持此方法
DELETE 請求服務器刪除Request-URI所標識的資源。出於安全考慮,大多數服務器不支持此方法 TRACE 回顯服務器收到的請求,主要用於測試或診斷。出於安全考慮,大多數服務器不支持此方 法

CONNECT 回顯服務器收到的請求,主要用於測試或診斷。出於安全考慮,大多數服務器不支持 此方法

該筆記為安全牛課堂學員筆記,想看此課程或者信息安全類幹貨可以移步到安全牛課堂

Security+認證為什麽是互聯網+時代最火爆的認證?


牛妹先給大家介紹一下Security+


Security+ 認證是一種中立第三方認證,其發證機構為美國計算機行業協會CompTIA ;是和CISSP、ITIL 等共同包含在內的國際 IT 業 10 大熱門認證之一,和CISSP偏重信息安全管理相比,Security+ 認證更偏重信息安全技術和操作。

通過該認證證明了您具備網絡安全,合規性和操作安全,威脅和漏洞,應用程序、數據和主機安全,訪問控制和身份管理以及加密技術等方面的能力。因其考試難度不易,含金量較高,目前已被全球企業和安全專業人士所普遍采納。

Security+認證如此火爆的原因?

原因一:在所有信息安全認證當中,偏重信息安全技術的認證是空白的, Security+認證正好可以彌補信息安全技術領域的空白 。

目前行業內受認可的信息安全認證主要有CISP和CISSP,但是無論CISP還是CISSP都是偏重信息安全管理的,技術知識講的寬泛且淺顯,考試都是一帶而過。而且CISSP要求持證人員的信息安全工作經驗都要5年以上,CISP也要求大專學歷4年以上工作經驗,這些要求無疑把有能力且上進的年輕人的持證之路堵住。在現實社會中,無論是找工作還是升職加薪,或是投標時候報人員,認證都是必不可少的,這給年輕人帶來了很多不公平。而Security+的出現可以掃清這些年輕人職業發展中的障礙,由於Security+偏重信息安全技術,所以對工作經驗沒有特別的要求。只要你有IT相關背景,追求進步就可以學習和考試。

原因二: IT運維人員工作與翻身的利器。

在銀行、證券、保險、信息通訊等行業,IT運維人員非常多,IT運維涉及的工作面也非常廣。是一個集網絡、系統、安全、應用架構、存儲為一體的綜合性技術崗。雖然沒有程序猿們“生當做光棍,死亦寫代碼”的悲壯,但也有著“鋤禾日當午,不如運維苦“的感慨。天天對著電腦和機器,時間長了難免有對於職業發展的迷茫和困惑。Security+國際認證的出現可以讓有追求的IT運維人員學習網絡安全知識,掌握網絡安全實踐。職業發展朝著網絡安全的方向發展,解決國內信息安全人才的匱乏問題。另外,即使不轉型,要做好運維工作,學習安全知識取得安全認證也是必不可少的。

原因三:接地氣、國際範兒、考試方便、費用適中!

CompTIA作為全球ICT領域最具影響力的全球領先機構,在信息安全人才認證方面是專業、公平、公正的。Security+認證偏重操作且和一線工程師的日常工作息息相關。適合銀行、證券、保險、互聯網公司等IT相關人員學習。作為國際認證在全球147個國家受到廣泛的認可。

在目前的信息安全大潮之下,人才是信息安全發展的關鍵。而目前國內的信息安全人才是非常匱乏的,相信Security+認證一定會成為最火爆的信息安全認證。

本文出自 “11662938” 博客,請務必保留此出處http://11672938.blog.51cto.com/11662938/1974434

【安全牛學習筆記】HTTP協議