http協議之請求/相應報文

無規矩不成方圓,互聯網之間的信息交替也是如此,http協議和TCP/IP等協議族內的其餘衆多協議就是用於客戶端和服務器之間的通訊的規則。
圖片描述web

上圖能夠看到,http協議在網絡信息交換的過程當中,主要在客戶端承擔,生成目標服務器的請求報文,在服務器端負責對web服務器請求的內容的處理,並生成目標客戶端的響應報文。跨域

那請求報文和響應報文包括什麼內容呢?

圖片描述
能夠看到請求報文和響應報文都主要分紅,報文首部和報文主體。使用首部字段是爲了給瀏覽器和服務器提供報文主體大小、所使用 的語言、認證信息等內容。 其內容在客戶端和服務器處理時起相當重要做用的信息。瀏覽器

對於請求報文來講:緩存

  • 請求行:包含用於請求的方法,請求 URI 和 HTTP 版本。
  • 請求首部字段經常使用的:服務器

    首部字段名 說明
    Accept 用戶代理可處理的媒體類型
    Accept-Charset 優先的字符集
    Accept-Encoding 優先的內容編碼
    Accept-Language 優先的語言(天然語言)
    Authorization Web 認證信息
    Expect 期待服務器的特定行爲
    From 用戶的電子郵箱地址
    Host 請求資源所在服務器
    If-Match 比較實體標記(ETag)
    If-Modified-Since 比較資源的更新時間
    If-None-Match 比較實體標記(與 If-Match 相反)
    If-Range 資源未更新時發送實體 Byte 的範圍請求
    If-Unmodified-Since 比較資源的更新時間(與 If-Modified-Since 相反)
    Max-Forwards 最大傳輸逐跳數
    Proxy-Authorization 代理服務器要求客戶端的認證信息
    Range 實體的字節範圍請求
    Referer 對請求中 URI 的原始獲取方
    TE 傳輸編碼的優先級
    User-Agent HTTP 客戶端程序的信息
  • 通用首部字段 (等同響應報文)cookie

    首部字段名 說明
    Cache-Control 控制緩存的行爲
    Connection 逐跳首部、鏈接的管理
    Date 建立報文的日期時間
    Pragma 報文指令
    Trailer 報文末端的首部一覽
    Transfer-Encoding 指定報文主體的傳輸編碼方式
    Upgrade 升級爲其餘協議
    Via 代理服務器的相關信息
    Warning 錯誤通知
  • 實體首部字段 (等同響應報文)網絡

    首部字段名 說明
    Allow 資源可支持的 HTTP 方法
    Content-Encoding 實體主體適用的編碼方式
    Content-Language 實體主體的天然語言
    Content-Length 實體主體的大小(單位 :字節)
    Content-Location 替代對應資源的 URI
    Content-MD5 實體主體的報文摘要
    Content-Range 實體主體的位置範圍
    Content-Type 實體主體的媒體類型
    Expires 實體主體過時的日期時間
    Last-Modified 資源的最後修改日期時間

對於響應報文來講:session

  • 狀態行: 包含代表響應結果的狀態碼,緣由短語和 HTTP 版本。
  • 響應首部字段經常使用的:編碼

    首部字段名 說明
    Accept-Ranges 是否接受字節範圍請求
    Age 推算資源建立通過時間
    ETag 資源的匹配信息
    Location 令客戶端重定向至指定URI
    Proxy-Authenticate 代理服務器對客戶端的認證信息
    Retry-After 對再次發起請求的時機要求
    Server Http服務器的安裝信息
    Vary 代理服務器緩存的管理信息
    WWW-Authenticate 服務器對客戶端的認證信息
爲了保存服務器端的sessionId等信息,http啓用了cookie的相關首部字段
首部字段名 說明 首部類型
Set-Cookie 開始狀態管理所使用的 Cookie 信息 (服務端向客戶端傳遞的cookie值) 響應首部字段
Cookie 服務器接收到的 Cookie 信息 請求首部字段

除了上面提到的首部字段,咱們還可能在瀏覽器中看到不少以X-的不規範的首部,好比:X-Frame-Options , X-XSS-Protection 等。這些規範已經被廢棄,可是對於已經在使用的規範,不該該要求其變動。 spa

除了以上正常狀況下的http響應首部,不少時候,咱們還會看到provisional headers are shown這樣的首部。出現這種狀況有如下集中可能:

  • 服務器出錯等致使請求超時
  • 請求被安裝的瀏覽器插件攔截
  • 跨域請求被攔截
  • 相似from disk cache和from memory cache這樣的緩存

本文圖片均來自《http圖解》

相關文章
相關標籤/搜索