HTTP系列1番外之頭部欄位大全
阿新 • • 發佈:2020-08-16
原文地址:https://www.jianshu.com/p/6e86903d74f7
常用標準請求頭
欄位 | 屬性 | 舉例 |
---|---|---|
Accept | 設定接受的內容型別 | Accept: text/plain |
Accept-Charset | 設定接受的字元編碼 | Accept-Charset: utf-8 |
Accept-Encoding | 設定接受的編碼格式 | Accept-Encoding: gzip, deflate |
Accept-Datetime | 設定接受的版本時間 | Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT |
Accept-Language | 設定接受的語言 | Accept-Language: en-US |
Authorization | 設定HTTP身份驗證的憑證 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Cache-Control | 設定請求響應鏈上所有的快取機制必須遵守的指令 | Cache-Control: no-cache |
Connection | 設定當前連線和hop-by-hop協議請求欄位列表的控制選項 | Connection: keep-alive |
Content-Length | 設定請求體的位元組長度 | Content-Length: 348 |
Content-MD5 | 設定基於MD5演算法對請求體內容進行Base64二進位制編碼 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Type | 設定請求體的MIME型別(適用POST和PUT請求) | Content-Type: application/x-www-form-urlencoded |
Cookie | 設定伺服器使用Set-Cookie傳送的http cookie | Cookie: $Version=1; Skin=new; |
Date | 設定報文傳送的日期和時間 | Date: Tue, 15 Nov 1994 08:12:31 GMT |
Expect | 標識客戶端需要的特殊瀏覽器行為 | Expect: 100-continue |
Forwarded | 披露客戶端通過http代理連線web服務的源資訊 | Forwarded: for=192.0.2.43, for=198.51.100.17 |
From | 設定傳送請求的使用者的email地址 | From: [email protected] |
Host | 設定伺服器域名和TCP埠號,如果使用的是服務請求標準埠號,埠號可以省略 | Host: en.wikipedia.org:8080 |
If-Match | 設定客戶端的ETag,當時客戶端ETag和伺服器生成的ETag一致才執行,適用於更新自從上次更新之後沒有改變的資源 | If-Match: "737060cd8c284d8af7ad3082f209582d |
If-Modified-Since | 設定更新時間,從更新時間到服務端接受請求這段時間內如果資源沒有改變,允許服務端返回304 Not Modified | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
If-None-Match | 設定客戶端ETag,如果和服務端接受請求生成的ETage相同,允許服務端返回304 Not Modified | If-None-Match: "737060cd8c284d8af7ad3082f209582d" |
If-Range | 設定客戶端ETag,如果和服務端接受請求生成的ETage相同,返回缺失的實體部分;否則返回整個新的實體 | If-Range: "737060cd8c284d8af7ad3082f209582d" |
If-Unmodified-Since | 設定更新時間,只有從更新時間到服務端接受請求這段時間內實體沒有改變,服務端才會傳送響應 | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
Max-Forwards | 限制代理或閘道器轉發訊息的次數 | Max-Forwards: 10 |
Origin 標識跨域資源請求 | 標識跨域資源請求(請求服務端設定Access-Control-Allow-Origin響應欄位) | Origin: http://www.example-social-network.com |
Pragma | 設定特殊實現欄位,可能會對請求響應鏈有多種影響 | Pragma: no-cache |
Proxy-Authorization | 為連線代理授權認證資訊 | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Range | 請求部分實體,設定請求實體的位元組數範圍,具體可以參見HTTP/1.1中的Byte serving | Range: bytes=500-999 |
Referer | 設定前一個頁面的地址,並且前一個頁面中的連線指向當前請求,意思就是如果當前請求是在A頁面中傳送的,那麼referer就是A頁面的url地址 | Referer: http://en.wikipedia.org/wiki/Main_Page |
TE | 設定使用者代理期望接受的傳輸編碼格式,和響應頭中的Transfer-Encoding欄位一樣 | TE: trailers, deflate |
Upgrade | 請求服務端升級協議 | Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket |
User-Agent | 使用者代理的字串值 | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0 |
Via | 通知伺服器代理請求 | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
Warning | 實體可能會發生的問題的通用警告 | Warning: 199 Miscellaneous warning |
常用非標準請求頭
欄位 | 屬性 | 舉例 |
---|---|---|
X-Requested-With | 標識Ajax請求,大部分js框架傳送請求時都會設定它為XMLHttpRequest | X-Requested-With: XMLHttpRequest |
DNT | 請求web應用禁用使用者追蹤 | DNT: 1 (Do Not Track Enabled) |
X-Forwarded-For | 一個事實標準,用來標識客戶端通過HTTP代理或者負載均衡器連線的web伺服器的原始IP地址 | X-Forwarded-For: client1, proxy1, proxy2; |
X-Forwarded-Host | 一個事實標準,用來標識客戶端在HTTP請求頭中請求的原始host,因為主機名或者反向代理的埠可能與處理請求的原始伺服器不同 | X-Forwarded-Host: en.wikipedia.org:8080 |
X-Forwarded-Proto | 一個事實標準,用來標識HTTP原始協議,因為反向代理或者負載均衡器和web伺服器可能使用http,但是請求到反向代理使用的是https | X-Forwarded-Proto: https |
Front-End-Https | 微軟應用程式和負載均衡器使用的非標準header欄位 Front-End-Https: on | |
X-Http-Method-Override | 請求web應用時,使用header欄位中給定的方法(通常是put或者delete)覆蓋請求中指定的方法(通常是post),如果使用者代理或者防火牆不支援直接使用put或者delete方法傳送請求時,可以使用這個欄位。 | X-HTTP-Method-Override: DELETE |
X-ATT-DeviceId | 允許更簡單的解析使用者代理在AT&T裝置上的MakeModel/Firmware | X-Att-Deviceid: GT-P7320/P7320XXLPG |
X-Wap-Profile | 設定描述當前連線裝置的詳細資訊的xml檔案在網路中的位置 | x-wap-profile: http://wap.samsungmobile.com/uaprof/SGH-I777.xml |
Proxy-Connection | 早起HTTP版本中的一個誤稱,現在使用標準的connection欄位 | Proxy-Connection: keep-alive |
X-UIDH | 服務端深度包檢測插入的一個唯一ID標識Verizon Wireless的客戶 | X-UIDH: ... |
X-Csrf-Token,X-CSRFToken,X-XSRF-TOKEN | 防止跨站請求偽造 | X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql |
X-Request-ID,X-Correlation-ID | 標識客戶端和服務端的HTTP請求 | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
常用標準響應頭
欄位 | 屬性 | 舉例 |
---|---|---|
Access-Control-Allow-Origin | 指定哪些站點可以參與跨站資源共享 | Access-Control-Allow-Origin: * |
Accept-Patch | 指定伺服器支援的補丁文件格式,適用於http的patch方法 | Accept-Patch: text/example;charset=utf-8 |
Accept-Ranges | 伺服器通過byte serving支援的部分內容範圍型別 | Accept-Ranges: bytes |
Age | 物件在代理快取中暫存的秒數 | Age: 12 |
Allow | 設定特定資源的有效行為,適用方法不被允許的http 405錯誤 | Allow: GET, HEAD |
Alt-Svc | 伺服器使用"Alt-Svc"(Alternative Servicesde的縮寫)頭標識資源可以通過不同的網路位置或者不同的網路協議獲取 | Alt-Svc: h2="http2.example.com:443"; ma=7200 |
Cache-Control | 告訴服務端到客戶端所有的快取機制是否可以快取這個物件,單位是秒 | Cache-Control: max-age=3600 |
Connection | 設定當前連線和hop-by-hop協議請求欄位列表的控制選項 | Connection: close |
Content-Disposition | 告訴客戶端彈出一個檔案下載框,並且可以指定下載檔名 | Content-Disposition: attachment; filename="fname.ext" |
Content-Encoding | 設定資料使用的編碼型別 | Content-Encoding: gzip |
Content-Language | 為封閉內容設定自然語言或者目標使用者語言 | Content-Language: en |
Content-Length | 響應體的位元組長度 | Content-Length: 348 |
Content-Location | 設定返回資料的另一個位置 | Content-Location: /index.htm |
Content-MD5 | 設定基於MD5演算法對響應體內容進行Base64二進位制編碼 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Range | 標識響應體內容屬於完整訊息體中的那一部分 | Content-Range: bytes 21010-47021/47022 |
Content-Type | 設定響應體的MIME型別 | Content-Type: text/html; charset=utf-8 |
Date | 設定訊息傳送的日期和時間 | Date: Tue, 15 Nov 1994 08:12:31 GMT |
ETag | 特定版本資源的識別符號,通常是訊息摘要 | ETag: "737060cd8c284d8af7ad3082f209582d" |
Expires | 設定響應體的過期時間 | Expires: Thu, 01 Dec 1994 16:00:00 GMT |
Last-Modified | 設定請求物件最後一次的修改日期 | Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT |
Link | 設定與其他資源的型別關係 | Link: ; rel="alternate" |
Location | 在重定向中或者建立新資源時使用 | Location: http://www.w3.org/pub/WWW/People.html |
P3P | 以P3P:CP="your_compact_policy"的格式設定支援P3P(Platform for Privacy Preferences Project)策略,大部分瀏覽器沒有完全支援P3P策略,許多站點設定假的策略內容欺騙支援P3P策略的瀏覽器以獲取第三方cookie的授權 | P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." |
Pragma | 設定特殊實現欄位,可能會對請求響應鏈有多種影響 | Pragma: no-cache |
Proxy-Authenticate | 設定訪問代理的請求許可權 | Proxy-Authenticate: Basic |
Public-Key-Pins | 設定站點的授權TLS證書 | Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; |
Refresh | "重定向或者新資源建立時使用,在頁面的頭部有個擴充套件可以實現相似的功能,並且大部分瀏覽器都支援 | Refresh: 5; url=http://www.w3.org/pub/WWW/People.html |
Retry-After | 如果實體暫時不可用,可以設定這個值讓客戶端重試,可以使用時間段(單位是秒)或者HTTP時間 | Example 2: Retry-After: Fri, 07 Nov 2014 23:59:59 GMT |
Server | 伺服器名稱 | Server: Apache/2.4.1 (Unix) |
Set-Cookie | 設定HTTP Cookie | Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 |
Status | 設定HTTP響應狀態 | Status: 200 OK |
Strict-Transport-Security | 一種HSTS策略通知HTTP客戶端快取HTTPS策略多長時間以及是否應用到子域 | Strict-Transport-Security: max-age=16070400; includeSubDomains |
Trailer | 標識給定的header欄位將展示在後續的chunked編碼的訊息中 | Trailer: Max-Forwards |
Transfer-Encoding | 設定傳輸實體的編碼格式,目前支援的格式: chunked, compress, deflate, gzip, identity | Transfer-Encoding: chunked |
TSV | Tracking Status Value在響應中設定給DNT(do-not-track),可能的取值 | |
Upgrade | 請求客戶端升級協議 | Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket |
Vary | 通知下級代理如何匹配未來的請求頭已讓其決定快取的響應是否可用而不是重新從源主機請求新的 | Example 2: Vary: Accept-Language |
Via | 通知客戶端代理,通過其要傳送什麼響應 | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
Warning | 實體可能會發生的問題的通用警告 | Warning: 199 Miscellaneous warning |
WWW-Authenticate | 標識訪問請求實體的身份驗證方案 | WWW-Authenticate: Basic |
X-Frame-Options | 點選劫持保護: | X-Frame-Options: deny |
常用非標準響應頭
欄位 | 屬性 | 舉例 |
---|---|---|
X-XSS-Protection | 過濾跨站指令碼 | X-XSS-Protection: 1; mode=block |
Content-Security-Policy, X-Content-Security-Policy,X-WebKit-CSP | 定義內容安全策略 | X-WebKit-CSP: default-src 'self' |
X-Content-Type-Options | 唯一的取值是"",阻止IE在響應中嗅探定義的內容格式以外的其他MIME格式 | X-Content-Type-Options: nosniff |
X-Powered-By | 指定支援web應用的技術 | X-Powered-By: PHP/5.4.0 |
X-UA-Compatible | 推薦首選的渲染引擎來展示內容,通常向後相容,也用於啟用IE中內嵌chrome框架外掛 | X-UA-Compatible: IE=EmulateIE7 |
X-Content-Duration | 提供音視訊的持續時間,單位是秒,只有Gecko核心瀏覽器支援 | X-Content-Duration: 42.666 |
Upgrade-Insecure-Requests | 標識伺服器是否可以處理HTTPS協議 | Upgrade-Insecure-Requests: 1 |
X-Request-ID,X-Correlation-ID | 標識一個客戶端和服務端的請求 | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
通用首部欄位介紹
//為了防止從快取中返回過期的資源。快取伺服器會向源伺服器進行有效期確認後處理資源。
Cache-Control: no-cache
// 當使用no-store指令時,暗示請求和對應的響應中包含機密資訊。因此,該指令規定快取不能在本地儲存請求或響應的任一部分。
Cache-Control: no-store
// 表示處理公共代理伺服器的情況下快取過期沒有超過指定的時間時,就會返回快取。
Cache-Control: s-maxage=604800 (單位:秒)
// 快取的最大有效時間,
Cache-Control: max-age=604800(單位:秒)
// 要求快取伺服器返回未過指定時間的快取資源。
Cache-control: min-fresh=60(單位:秒)
// 使用 max-stale 可以指示快取資源,即使過期也照常接收。
Cache-control: max-stale=3600(單位:秒)
// 僅僅使用快取,如果快取伺服器有指定快取則返回,否則返回 504 Gateway Timeout。
Cache-control: only-if-cached
// 代理會向源伺服器再次驗證即將返回的響應快取目前是否仍然有效。
Cache-Control: must-revalidate
//要求所有的快取伺服器在接受到客戶端帶有該指令返回資料之前,必須再次驗證快取的有效性。
Cache-Control: proxy-revalidate
// 無論是在請求還是在響應當中,快取都不能改變實體主體的媒體型別。這樣做可以防止快取或代理壓縮圖片等類似操作。
Cache-Control: no-transform
// HTTP/1.1 版本的預設連線都是持久連線,當伺服器明確想斷開連線時,
// 則指定Connection的首部欄位為 close。HTTP/1.1預設是開啟的,而之前預設是關閉的。
Connection: close
// 控制不再轉發給代理的首部欄位
GET / HTTP/1.1
Upgrade: HTTP/1.1
Connection: Upgrade