HTTP 學習瞭解四

echo_dump發表於2019-12-23

HTTP學習瞭解四

  • 首部欄位解讀

  • 表示是否能快取的指令

[public]指令: 當表明使用public指令的時候,表示其它使用者也可以利用快取

[private]指令: private指令表示響應只以特定的使用者作為物件

[no-cache]指令: 為了防止從快取中返回過期的資源,表示客戶端不會接收快取過的響應,伺服器中包含[no-cache]指令,那麼快取伺服器不能對資源
進行快取,源伺服器以後也將不再對快取伺服器請求中提出的資源有效進行確認,且禁止其對響應資源進行快取操作。

[no-store]指令: 控制可執行快取的物件的指令。當使用no-store指令時,暗示請求或響應中包含機密資訊,該指令規定快取不能在本地儲存請求或響
應的任一部分。

[s-maxage]指令: s-maxage指令只適用於供多位使用者使用的公共快取伺服器。

[max-age]指令: max-age數值代表資源儲存為快取的最長時間。當值為 0,代表快取伺服器通常需要將請求轉發給源伺服器。

[min-fresh]指令: 此指令要求快取伺服器返回至少還未過指定時間的快取資源。

[max-stale]指令: 可指示快取資源,即使過期也照常接受。

[only-if-cached]指令: 使用only-if-cached指令表示客戶端僅在快取伺服器本地快取目標資源情況下才會要求其返回。
該指令要求快取伺服器不重新載入響應,也不會再次確認資源有效性。

[must-revalidate]指令: 代理伺服器會向源伺服器再次驗證即將返回的響應快取目前是否仍然有效。
使用must-revalidate指令會忽略請求的max-stale指令。

[proxy-revalidate]指令: 該指令要求所有的快取伺服器在接收到客戶端帶有該指令的請求返回響應之前,必須再次驗證快取的有效性。

[no-transform]指令: 使用no-transform指令規定無論是在請求還時響應中,快取都不能改變實體主體的媒體型別,這樣做可防止快取或代理壓縮圖
片等類似操作。

  • Connection 控制不再轉發給代理的首部欄位,管理持久連線

  • Date 首部欄位表明建立HTTP報文的日期和時間

  • Transfer-Encoding 規定了傳輸報文主體時採用的編碼方式

  • Upgrade 用於檢測HTTP協議及其它協議是否可使用更高的版本通訊,其引數值可以用來指定一個完全不同的通訊協議。使用首部欄位Upgrade時,還需
    要額外指定Connection:Upgrade

  • Via 為了追蹤客戶端與伺服器之間的請求或響應報文的傳輸路徑。


請求首部欄位

  • Accept 該首部欄位可通知伺服器,使用者代理能夠處理的媒體型別以及媒體型別的相對優先順序。
  1. 文字檔案 text/html,text/plain,text/css,application/xhtml+xml,application/xml

  2. 圖片檔案 image/jpeg,image/gif,image/png

  3. 影片檔案 video/mpeg,video/quicktime

  4. 二進位制檔案 application/octet-stream,application/zip

  5. 給顯示媒體檔案增加權重(優先順序),使用 q=0-1,預設的權重是q=1

  • Accept-Charset 用來通知伺服器使用者代理支援的字符集及字符集的相對優先順序

  • Accept-Encoding 告知伺服器使用者代理的內容編碼及內容編碼的優先順序順序(可一次性指定多種內容編碼)

  • gzip 由檔案壓縮程式gzip生成的編碼格式

  • compress 由UNIX檔案壓縮程式compress生成的編碼格式

  • default 組合使用zlib格式及由default壓縮演算法生成的編碼格式

  • identity 不執行壓縮或不會變化的預設編碼格式

  • Accept-Language 告知伺服器使用者代理能夠處理的自然語言集

  • Authorization 告知伺服器使用者代理的認證資訊

  • Expect 告知伺服器期望出現的某種特定行為

  • From 告知伺服器使用使用者代理的使用者電子郵箱

  • Host 告知伺服器,請求的資源所處的網際網路主機名和埠號

  • If-Match 條件請求,伺服器接收到附帶條件的請求後,只有判定條件為真時,才會執行清華

  • If-Modified-Since 附帶的條件請求,告知伺服器欄位值早於資源的更新時間,則希望能處理該請求

  • Proxy-Authorization 接收到從代理伺服器傳送來的認證質詢時,客戶端會傳送包含首部欄位 Proxy-Authorization的請求,以告知伺服器認證
    所需要的資訊

  • Range 對於只獲取部分資源的範圍請求,包含首部欄位 Range 即可告知伺服器資源的指定範圍

  • Referer 告知伺服器請求的原始資源的URI

  • TE 告知伺服器客戶端能夠處理響應的傳輸編碼方式以及相對優先順序

  • User-agent 用於傳達瀏覽器的種類

響應首部欄位

  • Accept-Ranges 當不能處理範圍請求時,伺服器會 Accept-Ranges:none,可以處理時是具體的byte

  • Age 告知客戶端,服務端在多久前建立了響應,欄位值為秒

  • ETag 告知客戶端的實體標識,它是一種可將資源以字串形式做唯一性標識的方式,伺服器會為每一份資源分配對應的ETag

  • Location 可以將響應接收方式導至某個與請求URI位置不同的資源

  • Proxy-authenticate 把由代理伺服器所要求的認證資訊傳送給客戶端

  • Server 告知客戶端當前伺服器上安裝的HTTP伺服器的應用程式資訊

  • WWW-Authenticate 用於HTTP訪問認證,它會告知客戶端適用於訪問請求URI所指定的認證方案

實體首部欄位

  • Allow 告知客戶端能夠支援Request-URI指定資源的所有HTTP方法

  • Content-Encoding 告知客戶端伺服器對實體的主體部分選用的內容編碼方式

  • Content-Language 告知客戶端,實體主體使用的自然語言

  • Content-Length 標識了實體主體部分的大小(byte)

  • Content-Location 表示了報文主體返回資源對應的URI

  • Content-MD5 客戶端會對接收到的報文主體執行相同的MD5演算法,然後與首部欄位Content-MD5的欄位值比較

  • Content-Range 針對範圍請求,返回響應時使用的首部欄位,告知客戶端作為響應返回的實體的那個部分符合範圍請求

  • Content-Type 說明了實體主體內物件的媒體型別

  • Expires 告知客戶端資源失效的日期

  • Last-Modified 指明資源最終修改的時間

cookie服務的首部欄位

  • set-cookie
  1. name=value 賦予cookie的名稱和值

  2. expires=Data cookie 的有效期(不指定,預設是關閉瀏覽器,失效)

  3. path=/ 將伺服器上的檔案目錄作為cookie適用物件

  4. domain=域名 作為cookie適用物件的域名

  5. secure 僅在https安全通訊是才會傳送cookie

  6. HttpOnly 加以限制,使cookie不能被JavaScript指令碼訪問

  • cookie 首部欄位cookie會告知伺服器,當客戶端想獲得HTTP狀態管理支援時,就在請求中包含從伺服器接收到的cookie
本作品採用《CC 協議》,轉載必須註明作者和本文連結
LIYi ---- github地址

相關文章