Http基礎知識學習(三),第6章摘抄

6HTTP 首部

HTTP協議的請求和響應報文中必定包含HTTP首部

6.1 HTTP報文首部

報文結構

HTTP協議的請求和響應報文中必定包含HTTP首部。首部內容為客戶端和服務器分別處理請求和響應提供所需要的信息。對于客戶端用戶來說,信息中的大部分內容都無須親自查看

報文首部由幾個字段構成


  • HTTP 請求報文

    在請求中,HTTP報文由方法、URIHTTP版本HTTP首部字段等部分構成
請求報文

  • HTTP 響應報文

    在響應中,HTTP報文由HTTP版本、狀態碼(數字和原因短語)、HTTP首部字段3部分構成
響應報文

具體示例:

響應報文舉例


6.2 HTTP首部字段

6.2.1 HTTP首部字段傳遞重要信息

作用:向瀏覽器和服務器提供報文主體大小、所使用的的語言、認證信息等

首部字段

6.2.2 HTTP首部字段結構

HTTP首部字段由首部字段名和字段值構成,中間用冒號:分隔,形式便是首部字段名:字段值
例如,使用Content-Type表示報文主體的對象類型

COntont-Type:text/html

字段值對應單個HTTP首部字段可以有多個值

Keep-Alive:timeout = 15, max = 100

6.2.3 4種HTTP首部字段類型

首部字段分4種類型:

  • 通用首部字段General Header Fields

    請求報文和響應報文都會使用的首部

  • 請求首部字段Request Header Fields

    從客戶端向服務端發送請求報文時使用的首部。補充了請求的附加內容、客戶端信息、響應內容相關優先級等信息

  • 響應首部字段Response Header Fields

    從服務器端向客戶端返回響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容信息

  • 實體首部字段Entity Header Fidlds

    針對請求報文和響應報文的實體部分使用首部。補充了資源內容更新時間等實際與實體有關的信息


6.2.4 HTTP/1.1 首部字段一覽

HTTP/1.1 47種首部字段

實在不想把表格敲一遍了,就直接偷懶,截圖了

  • 通用首部字段
    通用字段首部

  • 請求首部字段
    請求首部字段

  • 響應首部字段
    響應首部字段

  • 實體首部字段
    實體首部字段

6.3 HTTP/1.1 通用首部字段

通用首部是指請求報文和響應報文都會用到的首部

6.3.1 Cache-Control

通過指定首部Cache-Control的指令,操作緩存的工作機制

Cache-Control

指令可選,多個指令之間通過,分隔。首部字段Cache-Control指令可用于請求及響應時

Cache-Control :private ,max-age = 0,no-cache

Cache-Control指令一覽

  • 緩存請求指令
    緩存請求指令

  • 緩存響應指令
    緩存響應指令

  • public:其他用戶也可以利用緩存
  • private:響應只以特定的用戶作對象,與public指令行為相反
    private

    緩存服務器,會對該特定用戶提供資源緩存的服務,對于其他用戶發來請求,不會返回緩存

  • no-cache指令:不緩存過期資源
    no-cache指令

作用:防止從緩存中返回過期的資源

客戶端發送包含no-cache指令,客戶端將不會接受緩存過的響應。“中間”的緩存服務器必須把客戶端必須把客戶端請求轉發給源服務器

如果服務器返回的響應包含no-cache指令,緩存服務器不能對資源進行緩存。源服務器以后將不再對緩存服務器請求中提出的資源有效性進行確認,且禁止其對響應資源進行緩存操作

Cache-Control : no-cache=Location

由服務器返回的響應中,若報文首部字段Cache-Control中對no-cache字段名具體指定參數值,客戶端在接收到的這個被指定參數值的首部字段對應的響應報文后,就不能使用緩存。無參數值的首部字段可以使用緩存,只能在響應指令中指定該參數

  • no-store:不緩存,緩存不能在本地存儲請求或響應的任一部分

指定緩存期限和認證的指令

  • max-age指令
    max-age

當客戶端發送的請求中包含max-age指令時,如果判定緩存資源的緩存時間數值比指定時間小,客戶端就接收緩存的資源。若max-age = 0,緩存服務器需要將請求轉發給源服務器

當源服務器返回的響應中包含max-age指令時,緩存服務器將不對資源的有效性再作確認,而max-age數值代表資源保存為緩存的最長時間


  • max-statle:過期也照常接收緩存

如果指令未指定參數值,無論經過多久,客戶端都會接收響應;如果指令中指定來具體數值,即使過期,只要仍處于max-statle指定時間內,仍舊會被客戶端接收


  • only-if-cached

僅在緩存服務器有本地緩存目標資源的情況下,才會返回。要求服務器不重新加載響應,也不會再次確認資源有效性。若發生請求緩存服務器的本地緩存無響應,則返回504 Gateway Timeout

還有一大堆,不想摘抄了,用到直接百度好了


6.4 為Cookie服務首部字段

Cookie的工作機制是用戶識別及狀態管理。

首部字段名 說明 首部類型
Set-Cookie 開始狀態管理所使用的Cookie信息 響應首部字段
Cookie 服務器接收到的Cookie信息 請求首部字段
Cookie首部

Set-Cookie字段的屬性

最后

第6章,抄著不想抄了,看了看,也沒記住啥

有錯誤,請指出

共勉 :)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容