HTTP報文語法/HTTP組成


    一、HTTP報文分類:請求報文響應報文

    請求報文會向Web服務器請求一個動作,響應報文會將請求的結果返回給客戶端

    請求報文格式:

    <method>  <request-URL>  <version>            這一行稱為:請求行或請求的起始行

    <header>

 

    <entity-body>

 

    響應報文格式:

    <version>  <status>  <reson-phrase>              這一行稱為:響應行或響應的起始行

    <header>

 

    <entity-body>

 

    二、下面是對各部分的描述:

  • 方法(method)

    客戶端希望服務器對資源執行的動作。是一個單獨的詞,如GET、POST

  • 請求URL(request-URL)

    所請求資源,或者URL路徑組件的完整URL

  • 版本(version)

    報文所使用的HTTP版本,格式:HTTP/<major>.<minor>

  • 狀態碼(status-code)

    描述請求過程中發生的情況。每個狀態碼的第一位數字用於描述狀態的一般類別(成功、出錯等)

  • 原因短語(reson-phrase)

    數字狀態碼的可讀版本(描述操作狀態的文本形式的原因短語)

  • 首部(header)

    可以有零個或多個首部,每個首部都包含一個名字,后面跟着一個冒號(:),然后是一個可選的空格,接着是一個值,最后是一個CRLF。首部是由一個空行(CRLF)結束的,表示了首部列表的結束和實體部分的開始。

    首部字段向請求和響應報文中添加了一些附加信息。

    本質上來說,它們只是一些名/值對的列表。

    首部的分類:

    1)通用首部:既可出現在請求報文中,也可出現在響應報文中。

        比如Date首部就是一個通用首部,每一端都可以它來說明構建報文的時間和日期:

        Date: Tue, 3 Oct 1974 02:16:00 GMT

    2)請求首部:提供更多有關請求的信息,請求報文特有的。為服務器提供了一些額外信息,比如客戶端希望接收什么類型的數據。例如,Accept首部就是用來告知

         服務器客戶端會接受與期請求相符的任意媒體類型:

         Accept: */*

    3)響應首部:提供更多有關響應的信息,以便為客戶端提供信息(如,客戶端在與哪種類型的服務器進行交互)。例如,Server首部就是用來告知客戶端它在與一個

        版本 1.0 的 Tiki-Hut 服務器進行交互:

        Server: Tiki-Hut /1.0

    4)實體首部:描述主體的長度和內容,或者資源本身。如,可以用實體首部來說明實體主體部分的數據類型。如Content-Type首部告知應用程序,數據是以iso-latin-1

        字符集表示的HTML文檔:

        Content-type: text/html; charset=iso-latin-1

    5)擴展首部:規范中沒有定義的新首部,非標准的首部,由應用程序開發者創建,但還未添加到已批准的HTTP規范中。

  • 實體的主體部分(entity-body)

    包含一個由任意數據組成的數據塊。並不是所有的報文都包含實體的主體報文,有時,報文只是以一個CRLF結束。

    實體的主體是HTTP報文的負荷,就是HTTP要傳輸的內容。

    HTTP報文可以承載很多類型的數字數據,如圖片、視頻、HTML文檔、軟件應用程序、信息卡事務、電子郵件等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM