http headers 大總結
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 安全相關。 |
合併的大圖,收藏的請儲存。
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- HTTP Headers的Request HeadersHTTPHeader
- http http headers參考文件HTTPHeader
- HTTP總結HTTP
- [前端 · 面試 ]HTTP 總結(一)—— HTTP 概述前端面試HTTP
- http2.0總結HTTP
- HTTP返回碼總結HTTP
- HTTP Client使用總結HTTPclient
- [前端 · 面試 ]HTTP 總結(二)—— HTTP 訊息前端面試HTTP
- HTTP 快取控制總結HTTP快取
- HTTP協議常用Headers、方法Methods、狀態碼HTTP協議Header
- http協議學習-請求頭Request HeadersHTTP協議Header
- [前端 · 面試 ]HTTP 總結(三)—— HTTP 請求方法前端面試HTTP
- [前端 · 面試 ]HTTP 總結(四)—— HTTP 狀態碼前端面試HTTP
- [前端 · 面試 ]HTTP 總結(七)—— HTTP 快取概述前端面試HTTP快取
- [前端 · 面試 ]HTTP 總結(八)—— HTTP 強快取前端面試HTTP快取
- TCP/IP、HTTP和Socket總結TCPHTTP
- HTTP協議知識總結HTTP協議
- http content-type總結HTTP
- 理解Angular的providers - 給Http新增預設headersAngularIDEHTTPHeader
- http協議學習系列(請求頭---Request Headers)HTTP協議Header
- [前端 · 面試 ]HTTP 總結(九)—— HTTP 協商快取前端面試HTTP快取
- 【前端 · 面試 】HTTP 總結(十)—— HTTP 快取應用前端面試HTTP快取
- [前端 · 面試 ]HTTP 總結(十)—— HTTP 快取應用前端面試HTTP快取
- 對於http/http2的一些總結HTTP
- HTTP/2 特性的簡單總結HTTP
- HTTP協議知識點總結HTTP協議
- Http協議狀態碼總結HTTP協議
- 你不能不知道的安全性 HTTP headersHTTPHeader
- [譯] 如何使用 HTTP Headers 來保護你的 Web 應用HTTPHeaderWeb
- 【總結】二叉樹概念大總結二叉樹
- 適合前端的HTTP全流程總結前端HTTP
- 網路、HTTP相關學習總結HTTP
- HTTP標頭學習總結歸納HTTP
- [前端 · 面試 ]HTTP 總結(五)—— GET 和 POST前端面試HTTP
- [前端 · 面試 ]HTTP 總結(十一)—— HTTPS 概述前端面試HTTP
- [前端 · 面試 ]HTTP 總結(十二)—— URL 和 URI前端面試HTTP
- 【前端 · 面試 】HTTP 總結(十二)—— URL 和 URI前端面試HTTP
- HTTP協議理解與應用總結HTTP協議