分析HTTP協議

2021-09-13 13:59:44 字數 2208 閱讀 9175

1.簡介

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。

http協議(hypertext transfer protocol,超文字傳輸協議)是用於從www伺服器傳輸超文字到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。

http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。http是乙個無狀態的協議。

2.技術架構

http是乙個客戶端和伺服器端請求和應答的標準(tcp)。客戶端是終端使用者,伺服器端是**。通過使用web瀏覽器、網路爬蟲或者其它的工具,客戶端發起乙個到伺服器上指定埠(預設埠為80)的http請求。(我們稱這個客戶端)叫使用者**(user agent)。應答的伺服器上儲存著(一些)資源,比如html檔案和影象。(我們稱)這個應答伺服器為源伺服器(origin server)。在使用者**和源伺服器中間可能存在多個中間層,比如**,閘道器,或者隧道(tunnels)。儘管tcp/ip協議是網際網路上最流行的應用,http協議並沒有規定必須使用它和(基於)它支援的層。 事實上,http可以在任何其他網際網路協議上,或者在其他網路上實現。http只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。

通常,由http客戶端發起乙個請求,建立乙個到伺服器指定埠(預設是80埠)的tcp連線。http伺服器則在那個埠監聽客戶端傳送過來的請求。一旦收到請求,伺服器(向客戶端)發回乙個狀態行,比如"http/1.1 200 ok",和(響應的)訊息,訊息的訊息體可能是請求的檔案、錯誤訊息、或者其它一些資訊。

http使用tcp而不是udp的原因在於(開啟)乙個網頁必須傳送很多資料,而tcp協議提供傳輸控制,按順序組織資料,和錯誤糾正。

通過http或者https協議請求的資源由統一資源標示符(uniform resource identifiers)(或者,更準確一些,urls)來標識

3.協議功能

http協議(hypertext transfer protocol,超文字傳輸協議)是用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。

http是客戶端瀏覽器或其他程式與web伺服器之間的應用層通訊協議。在internet上的web伺服器上存放的都是超文字資訊,客戶機需要通過http協議傳輸所要訪問的超文字資訊。http包含命令和傳輸資訊,不僅可用於web訪問,也可以用於其他網際網路/內聯網應用系統之間的通訊,從而實現各類應用資源超**訪問的整合。

我們在瀏覽器的位址列裡輸入的**位址叫做url (uniform resource locator,統一資源定位符)。就像每家每戶都有乙個門牌位址一樣,每個網頁也都有乙個internet位址。當你在瀏覽器的位址框中輸入乙個url或是單擊乙個超級鏈結時,url就確定了要瀏覽的位址。瀏覽器通過超文字傳輸協議(http),將web伺服器上站點的網頁**提取出來,並翻譯成漂亮的網頁。

4.報文格式

http報文由從客戶機到伺服器的請求和從伺服器到客戶機的響應構成。請求報文格式如下:

請求行 - 通用資訊頭 - 請求頭 - 實體頭 - 報文主體

請求行以方法字段開始,後面分別是 url 欄位和 http 協議版本字段,並以 crlf 結尾。sp 是分隔符。除了在最後的 crlf 序列中 cf 和 lf 是必需的之外,其他都可以不要。有關通用資訊頭,請求頭和實體頭方面的具體內容可以參照相關檔案。

應答報文格式如下:

狀態行 - 通用資訊頭 - 響應頭 - 實體頭 - 報文主體

狀態碼元由3位數字組成,表示請求是否被理解或被滿足。原因分析是對原文的狀態碼作簡短的描述,狀態碼用來支援自動操作,而原因分析用來供使用者使用。客戶機無需用來檢查或顯示語法。有關通用資訊頭,響應頭和實體頭方面的具體內容可以參照相關檔案。

5.工作原理

http協議分析

http協議版本 http協議中共定義了八種方法或者叫 動作 來表明對request uri指定的資源的不同操作方式,具體介紹如下 connect http 1.1協議中預留給能夠將連線改為管道方式的 伺服器。雖然http的請求方式有8種,但是我們在實際應用中常用的也就是get和post,其他請求方...

HTTP協議分析

url即統一資源定位符 用來唯一地表示全球資訊網中的某乙個文件 url由協議 主機埠 檔名三個部分構成 get http 1.1 請求行 host 傳送請求時,該頭域是必須的 主要用於指定被請求資源的internet主機和埠號,它通常從http url中提取出來的。http 1.1請求必須包含主機頭...

http協議分析網頁

上週接收完成離職同事的活 對網路中使用者訪問的內容進行監控 某些非法關鍵字 需要用到http協議對網頁進行解析。由於以前同事寫的 過於雜亂,並且在實際環境中,出現以下問題 段錯誤,chunked傳輸方式的網頁無法監測。專案經理讓我進行重新架構。我簡單學習了一下http協議 rfc2616 對於完整的...