HTTP報文

HTTP 報文是 HTTP 應用程序之間傳遞的格式化數據塊,分爲請求報文響應報文兩類,二者的基本結構相同。緩存

HTTP 報文由起始行首部主體(可選)三個部分組成。其中,起始行和首部均以一個行終止序列(即空行,可寫做CRLF,包括一個回車符、一個換行符)做爲結束符。主體是可選的數據塊,能夠包含文本、二進制數據或者爲空。安全

 

起始行服務器

全部 HTTP 報文都已起始行做爲開始,請求報文和響應報文的起始行的語法有所不一樣。google

 

請求報文起始行:代理

又稱爲請求行,告訴服務器要作什麼。code

語法:視頻

  <method><request-URL><version>               如:GET www.google.com HTTP/1.0圖片

  方法(method):經常使用的有資源

           ① GET:從服務器上獲取資源文檔

           ② POST:向服務器發送須要處理(更新)的數據

           ③ PUT:將請求主體存儲於(寫入)服務器上的指定路徑(請求的 URL)

           ④ DELETE:請求服務器刪除資源,但沒法保證被執行,由於服務器能夠在不通知客戶端的狀況下撤銷請求

           ⑤ HEAD:從服務器獲取資源首部,必須確保與 GET 請求返回的首部徹底相同

           ⑥ OPTIONS:肯定服務器能夠執行的方法;使客戶端不一樣實際訪問資源就能判斷訪問資源的最優方法。

           ⑦ TRACE:對可能通過代理服務器的報文進行跟蹤

   其中 GET 和 HEAD 方法被認爲是安全的,由於這兩種請求不會在服務器上產生什麼結果。

 

響應報文起始行:

又稱爲響應行,告訴客戶端發生了什麼。

語法:

<version><status><reason-phrase>                如:HTTP/1.0 200 OK

 

  狀態碼(status-code):數字狀態碼,便於程序進行差錯處理;每一個狀態碼第一位數字都用於描述狀態的通常類型。其中

      100-199:表示信息提示,100-101 已被定義

           100 Continue 表示服務器收到了請求的初始部分,請客戶端繼續。通常當客戶端須要發送一個大實體或判斷服務器可否處理實體時,能夠在首部添加 Expect: 100 Continue。若是客戶端不須要發送實體,就不該該發送該首部字段。

      200-299:表示成功,200-206 已被定義

           200 OK 請求成功,主題包含所請求的資源。

      300-399:表示資源被移走,300-30五、307 已被定義

           301 Moved Permanently 永久重定向;

           302 Found 臨時重定向(HTTP/1.0);

           303 See Other 臨時重定向(HTTP/1.1);

           304 Not Modified 所請求資源未被修改,使用緩存資源;

           307 Temporary Rederect 與 301 相似(HTTP/1.1);

      400-499:表示客戶端請求出錯,400-415 已被定義

           401 Unauthorized 客戶端在獲取資源的訪問權以前,對本身進行認證;

           403 Forbidden 請求被服務器拒絕,一般在服務器不想說明拒絕緣由時使用;

           404 Not Found 請求的資源不存在;

           405 Method Not Allowed 請求中帶有所請求 URL 不支持的方法;

           406 Not Acceptable 服務器不存在客戶端可接受的與請求 URL 匹配的資源;

      500-599:表示服務器出錯,500-505 已被定義

           500 Internal Server Error 服務器發生錯誤;

           501 Not Implemented 請求超出服務器的能力範圍(如使用服務器不支持的請求方法);

           503 Service Unavalable 服務器暫時沒法爲請求提供服務,但未來能夠;

           504 Gateway Timeout 響應超時,來自網關或代理;

           505 HTTP Version Not Supproted 請求使用了服務器沒法或不肯支持的協議版本;

  緣由短語(reason-phrase):以文本形式描述操做狀態;便於人們理解,所以只對人類有意義(通常程序只檢查狀態碼)

 

首部

爲報文添加一些附件信息;本質上是一些名/值對列表。首部分爲:

  通用首部:

    緩存首部:Cache-Control、Pragma

  請求首部:

    Accept首部:Accept、Accept-Charset、Accept-Encoding、Accept-Language、TR

    條件首部:Expect、If-Match、If-Modified-Since、If-Unmodified-Since、If-Match、If-None-Match

    安全首部:Authorization、Cookie、Cookie2

    代理首部:Max-forward、Proxy-Authorization、Proxy-Connection

  響應首部:

    信息性首部:Age、public...

    安全首部:Proxy-Authenticate、Set-Cookie、Set-Cookie2

  實體首部:

    信息性首部:Allow、Location

    內容首部:Content-Type、Content-length、Content-Language

    緩存首部:ETag、Expires、Last-Modified

  擴展首部。

 

主體

HTTP 要傳輸的內容,能夠爲圖片、視頻、HTML 文檔、軟件應用程序等。

 

參考:HTTP 權威指南

相關文章
相關標籤/搜索