http headers 大總結

eudore發表於2020-04-12

http headers

本文記錄自己使用和理解到的 headers,參考MDN,如有不同看法請發評論。

方向表示是請求 header 還是響應 header 或者兩種情況都有,r 是請求 header,w 是響應 header,空白就是雙向 header;作用和解釋如果是空白就是我不清楚。

Name 方向 作用 解釋
Accept r 通用 請求時告訴服務端可以接受的響應型別,用於協商,服務端會按照順序和權重返回合適的響應資料型別。
Accept-Charset r 通用 同上 客戶端接受的字符集。
Accept-Encoding r 通用 同上 客戶端可以接受的壓縮編碼。
Accept-Language r 通用 同上 客戶端接受語言。
Accept-Ranges w Range 在 Range 請求時返回,標識返回型別,通常返回Accept-Ranges: bytes
Access-Control-Allow-Credentials w CORS 允許瀏覽器讀取 response 的認證內容。
Access-Control-Allow-Headers w CORS 實際請求中允許攜帶的首部欄位。
Access-Control-Allow-Methods w CORS 實際請求所允許使用的 HTTP 方法。
Access-Control-Allow-Origin w CORS 指定允許請求的源站,一般該響應值為請求的 Origin,部分閱覽器將不再支援*
Access-Control-Expose-Headers w CORS 允許客戶端讀取響應額外的 headers。
Access-Control-Max-Age w CORS preflight 請求的結果能夠被快取多久。
Access-Control-Request-Headers r CORS 實際請求需要附加的 header。
Access-Control-Request-Method r CORS 實際請求的方法。
Age w proxy 代理快取資源時間。
Allow w 405 在返回 405 狀態碼時,記錄服務端允許的請求方法。
Alt-Svc w http3 在客戶端發起請求後,服務端使用 Alt-Svc header 表示自己支援的 h3 地址和版本。
Authorization r auth 傳送客戶端驗證資訊,未認證或認證失敗返回 401,然後重新輸入認證資訊。
Cache-Control cache 客戶端表示是否接受快取型別,服務端表示如何進行快取。
Connection 通用 值為 Close 表示關閉連線,Keep-Alive 表示使用長連線,Upgrade 在 Upgrade 機制使用。
Content-Disposition w 通用 響應 body 的描述,例如檔案下載後的檔名稱。
Content-Encoding 通用 表示 body 的編碼型別,通常出現就是 gzip,是響應協商 Accept-Encoding 的值。
Content-Language 通用 同上 body 使用的語言,響應協商 Accept-Language。
Content-Length 通用 同上 body 的長度,在不使用分段傳輸的長連線才會有此 header,記錄這個 body 的長度用於區別下一個請求。
Content-Location 通用
Content-Range w Range 表示 Range 請求返回的資料是整體的那一段位置。
Content-Security-Policy w 安全 CSP CSP 的值,也可以設定在 html head meta 裡面,是安全相關閱覽器策略。
Content-Type 通用 表示 body 內容的資料型別,例如 json、xml、text、html。
Cookie r Cookie 請求時傳送的 Cookie 鍵值對資料。
Cross-Origin-Resource-Policy w
DNT r chrome chrome 裡面有一個選項開啟後會傳送,表示不希望被追蹤,作用未知。
Date 通用 表示請求或響應的建立時間。
Digest w 通用 記錄請求資源的摘要。
ETag w cache 相當於響應的 hash 值,用於下次請求時判斷是否內容改變。
Expect r 通用 傳送Expect: 100-continue後不會傳送 body,需要服務端返回 100 後才會繼續傳送 body,可以讓服務端判斷是否需要傳送 body。
Expect-CT w 安全 CT 服務端返回證照的 CT 資訊。
Expires w cache 記錄快取的過期時間。
Forwarded r proxy 和 X-Forwarded-For 類似,記錄經過的代理 ip。
From r 發請求人的聯絡 email。
Host r 通用 http/1.1 唯一的必要請求 header,記錄 host 值。
If-Match r cache 傳送之前請求返回的 Etag 值,如果服務端匹配資源 Etag 才會響應。
If-Modified-Since r cache 傳送上傳請求該資源響應的 Last-Modified 值,用於服務端判斷資源修改時間在此時間之前就返回 304,否在返回 200 和資源。
If-None-Match r cache 傳送之前請求返回的 Etag 值,如果服務端匹配就會返回 304,否在返回 200 和資源。
If-Unmodified-Since r cache 判斷資源修改時間在此時間之後才會返回 200 和資源,否在返回 412。
Keep-Alive 通用 Connection: Keep-Alive時的 keepalive 配置資訊。
Last-Modified w cache 返回資源最後修改時間。
Location w redirect 記錄重定向返回的新地址,響應碼為:301、302、307、308。
Origin r CORS ws 表明預檢請求或實際請求的源站,以及 ws Upgrade 時傳送客戶端地址。
Pragma cache 相容 http/1.0,作用相當於 Cache-Contro。l
Proxy-Authenticate w proxy auth 返回代理為認證需要傳送認證資訊,狀態碼 407,類似 www-Authenticate。
Proxy-Authorization r proxy auth 傳送代理的驗證資訊。
Public-Key-Pins w 安全 HPKP hpkp 記錄證照的允許的多個 hash,hash 演算法為 sha256 sha384 sha512,如果 hpkp 不匹配閱覽器一般會中斷請求。
Range r Range 表示客戶端請求需要服務端返回那一部分資料。
Referer r 通用 安全 表示傳送這個請求的引用地址,http 會自動傳送,https 不會自動傳送但是可以設定一個 meta 後就會自動傳送。
Referrer-Policy w 安全 表示資源引用策略和 CSP 類似。
Sec-WebSocket-Accept w ws 值為 Sec-WebSocket-Key 的值加固定字串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"然後計算 sha1,用於驗證 ws 握手。
Sec-WebSocket-Key r ws 隨機字串。
Sec-WebSocket-Protocol r ws ws 客戶端支援的擴充套件協議。
Sec-WebSocket-Version r ws ws 協議的版本,通常使用版本為 13。
Server w 通用 表示服務端資訊,不要返回詳細版本資訊防止攻擊。
Set-Cookie w Cookie 返回服務端設定的新的 Cookie 資料。
Trailer w 通用 在分段傳輸時,Trailer 指定在先返回 body 後再返回那些 header。
Transfer-Encoding w 通用 表示服務端使用的傳輸編碼,例如分段傳輸。
Upgrade r ws 在 Upgrade 機制時傳送該 header,例如利用 Upgrade 機制握手 ws 時傳送Upgrade: websocket header,Upgrade 成功則返回 101 狀態碼。
Upgrade-Insecure-Requests r chrome 將下一個請求傳送 https 協議,在 chrome70 後出現,如果 html mate 或 header 使用 CSP 響應了這個 header,下一個請求會自動變成 https,不存在 30x 重定向的過程。
User-Agent r 通用 記錄客戶端的資訊。
Vary w 通用 表示服務端支援了那個協商的 header。
WWW-Authenticate w auth 表示客戶端需要驗證或者驗證不正確,和 401 狀態碼一起出現,然後需要重新輸入認證資訊。
X-Content-Type-Options w 安全 強制要求響應返回 Content-Type header,否在 body 作為 text 顯示。
X-DNS-Prefetch-Control w 用於啟用 DNS 預讀取功能,提前解析 dns 減少請求時間,作用未知。
X-Forwarded-For r proxy 與 Forwarded 作用一樣記錄經過的代理 ip
X-Forwarded-Host r proxy 記錄最初的請求的 Host 值。
X-Forwarded-Proto r proxy 代理端對端間使用的協議。
X-Frame-Options w 安全 是 Frame 標籤巢狀地址策略。
X-Powered-By w 通用 通常 php 可能返回Powered-By: PHP/5.2.6,暴露了版本資訊可能遭到相關版本 bug 攻擊,需要刪除。
X-XSS-Protection w 安全 XSS 安全相關。

合併的大圖,收藏的請儲存。

更多原創文章乾貨分享,請關注公眾號
  • http headers 大總結
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章