6HTTP 首部
HTTP
協議的請求和響應報文中必定包含HTTP
首部
6.1 HTTP報文首部
HTTP
協議的請求和響應報文中必定包含HTTP
首部。首部內容為客戶端和服務器分別處理請求和響應提供所需要的信息。對于客戶端用戶來說,信息中的大部分內容都無須親自查看
報文首部由幾個字段構成
-
HTTP 請求報文
在請求中,HTTP
報文由方法、URI
、HTTP版本
、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 :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信息 | 請求首部字段 |
最后
第6章,抄著不想抄了,看了看,也沒記住啥
有錯誤,請指出
共勉 :)