<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    結合Wireshark捕獲分組深入理解TCP/IP協議棧之HTTP協議

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    摘要:

        本文簡單介紹了Web應用層協議理論知識,詳細講述了HTTP請求報文和響應報文各個字段含義,并從Wireshark俘獲分組中選取HTTP相關報文進行分析。

     

    一、概述

        Web的應用層協議是超文本傳輸協議HTTP,HTTP協議由兩部分程序實現:客戶機程序、服務器程序,協議定義了這些報文的格式以及客戶機和服務器如何進行報文交換的。Web服務器用于存儲Web對象,每個對象由URL尋址,Web客戶機通常指瀏覽器。瀏覽器向服務器發出對Web頁中所包含對象的HTTP請求報文,服務器接受請求并用包含這些對象的HTTP響應報文進行響應。Web頁是由對象組成,對象簡單來說就是文件(如圖形文件、Java小程序、聲音剪輯文件),這些文件通過一個URL地址尋址。Web頁通常含有一個基本的HTML文件和幾個引用對象。

        HTTP報文有兩種:請求報文、響應報文。

    二、HTTP請求報文

    2.1 請求報文

    整個報文段內容是普通ASCII文本,各個字段靠空格或者回車換行符隔開,如下圖:

    RFID設備管理軟件

    圖1 HTTP請求報文格式

    方法

    表1 HTTP請求報文方法[1]

     

    方法

    說明

    GET

    請求獲取URL所標識的資源

    POST

    在URL所標識的資源后附加新的數據

    HEAD

    請求獲取由URL所標識的資源的響應消息報頭,常用于故障跟蹤

    PUT

    請求服務器存儲一個資源,并用URL作為其標識

    DELETE

    請求服務器刪除URL所標識的資源

    TRACE

    請求服務器回送收到的請求信息,主要用于測試或診斷

    CONNECT

    保留將來使用

    OPTIONS

    請求查詢服務器的性能,或者查詢與資源相關的選項和需求

        使用GET方法時實體主體為空。客戶機有時候需要提交表單(如搜索關鍵詞),有兩種方法可以做到這一點:其一,使用POST方法,實體主體包含表單字段的值;其二,用GET方法,此時表單的字段與原URL形成新的URL。

        注:HTTP/1.0規約僅有三種方法:GET、POST、HEAD。

    URL

        對象由統一資料定位器URL標識,URL由3部分組成(如http://www.baidu.com/index.html):協議(http)、存放對象服務器主機名(www.baidu.com)、對象的路徑名(/index.html)。

    版本

        目前有HTTP/1.0、HTTP/1.1,后者兼容前者。HTTP/1.0僅支持非持續連接,即每個TCP連接在服務器返回對象后關閉,HTTP/1.1支持持續連接,即服務器在發送響應后保持該TCP連接。早期,Web頁面通常只包含HTML文件,用非持續連接就夠了。如今,一個Web頁面包含許多對象,用非持續連接開銷太大了(TCP建立的三次握手),因此持續連接更合適。

    首部行

        給服務器發送首部行旨在服務器為不同類型的客戶機發送相同對象的不同版本,常用的首部行見表2。

    表2 HTTP請求報文常用首部行

     

    字段名

    User-Agent

    關于瀏覽器和它的平臺信息

    Accept

    客戶機能處理的頁面類型

    Accept-Charset

    客戶機可以接受的字符集

    Aceept-Encoding

    客戶機能處理的頁面編碼方法

    Accept-Language

    客戶機能處理的自然語言

    Host

    服務器的DNS名字

    Authorization

    證明客戶端有權查看某個資源

    Cookie

    將一個以前設置的cookie送回給服務器

    實體數據

        實體數據是報文的主體,即所請求的對象本身。

     

    2.2 實例分析

    RFID設備管理軟件

    圖2 HTTP請求報文實例

    三、HTTP響應報文

    3.1 報文格式

    RFID設備管理軟件

    圖3 HTTP響應報文格式

    版本

        服務器使用的協議版本。

    狀態編碼、短語

        狀態編碼碼由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值[1]:

    表3 HTTP響應報文響應類別及值

     

    類別

    1xx

    指示信息--表示請求已接收,繼續處理

    2xx

    成功--表示請求已被成功接收、理解、接受

    3xx

    重定向--要完成請求必須進行更進一步的操作

    4xx

    客戶端錯誤--請求有語法錯誤或請求無法實現

    5xx

    服務器端錯誤--服務器未能實現合法的請求

     

    常見狀態代碼、狀態描述、說明:

    表4 HTTP響應報文常用代碼

     

    編碼

    短語

    說明

    200

    OK

    客戶端請求成功

    400

    Bad Request

    客戶端請求有語法錯誤,不能被服務器所理解

    401

    Unauthorized

    請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用

    403

    Forbidden

    服務器收到請求,但是拒絕提供服務

    404

    Not Found

    請求資源不存在

    500

    Internal Server Error

    服務器發生不可預期的錯誤

    503

    Server Unavailable

    服務器當前不能處理客戶端的請求,一段時間后,可能恢復正常

    首部行

        常用的HTTP響應報文首部行見下表:

    表5 響應報文常用首部行字段

     

    字段名

    Date

    消息被發送時的日期和時間

    Server

    關于服務器信息

    Content-Encoding

    內容是如何被編碼的(如gzip)

    Content-Length

    以字節計算的頁面長度

    Content-Type

    頁面的MIME類型

    Last-Modified

    頁面最后被修改的時間和日期

    Location

    指標客戶將請求發送到別處的命令

    Accept-Ranges

    服務器將接受指定請求的字節范圍

    Set-Cookie

    服務器希望客戶保存一份cookie

    實體數據

        實體數據是報文的主體,即所請求的對象本身。

     

    3.2 報文實例

    RFID設備管理軟件

    圖2 HTTP響應報文實例

     

     

    至此,服務器返回用戶所請求的文件:-)

     

    參考資料:

    [1] 博文《HTTP協議詳解

    [2] Andrew S.Tanenbaum.計算機網絡[M].

    [3] 《計算機網絡--自頂向下方法與Internet特色》[M].

    RFID設備管理軟件 HTTP請求報文格式.rar   

    from:http://blog.chinaunix.net/uid-9112803-id-3212057.html

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全