http headers 大總結

eudore發表於2020-04-12

本文記錄自己使用和理解到的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安全相關。

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

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章