做爲Web開發對經常使用http的請求頭和響應頭熟悉瞭解一下仍是頗有必要的。好比請求頭中Content-type指定了請求的內容,若類型是application/x-www-form-urlencoded,就能夠調用reqeust的獲取參數方法取到內容,如果其它都須要調用獲取流的方法獲取。又好比響應頭X-Frame-Options 的設置直接決定了你的頁面是否能被其它非同源的ifream嵌入,而這個設置能夠是在html頁面中,也能夠是框架或代碼的響應頭設置中,也能夠是在http服務器(nginx或tomcat等)得配置中。html
Accept 設置接受的內容類型nginx
Accept: text/plainweb
Accept-Charset 設置接受的字符編碼算法
Accept-Charset: utf-8chrome
Accept-Encoding 設置接受的編碼格式跨域
Accept-Encoding: gzip, deflate瀏覽器
Accept-Datetime 設置接受的版本時間緩存
Accept-Datetime: Thu, 31 May 2007 20:35:00 GMTtomcat
Accept-Language 設置接受的語言安全
Accept-Language: en-US
Authorization 設置HTTP身份驗證的憑證
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 設置請求響應鏈上全部的緩存機制必須遵照的指令
Cache-Control: no-cache
Connection 設置當前鏈接和hop-by-hop協議請求字段列表的控制選項
Connection: keep-alive
Connection: Upgrade
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.60;proto=http;by=203.0.113.43
Forwarded: for=192.0.2.43, for=198.51.100.17
From 設置發送請求的用戶的email地址
From: user@example.com
Host 設置服務器域名和TCP端口號,若是使用的是服務請求標準端口號,端口號能夠省略
Host: en.wikipedia.org:8080
Host: en.wikipedia.org
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地址(軼事:這個單詞正確的拼法應該是"referrer",可是在不少規範中都拼成了"referer",因此這個單詞也就成爲標準用法)
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)
DNT: 0 (Do Not Track Disabled)
X-Forwarded-For 一個事實標準,用來標識客戶端經過HTTP代理或者負載均衡器鏈接的web服務器的原始IP地址
X-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-For: 129.78.138.66, 129.78.64.103
X-Forwarded-Host 一個事實標準,用來標識客戶端在HTTP請求頭中請求的原始host,由於主機名或者反向代理的端口可能與處理請求的原始服務器不一樣
X-Forwarded-Host: en.wikipedia.org:8080
X-Forwarded-Host: en.wikipedia.org
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: </feed>; 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 "重定向或者新資源建立時使用,在頁面的頭部有個擴展能夠實現類似的功能,而且大部分瀏覽器都支持<meta http-equiv="refresh" content="5; url=http://example.com/">
Refresh: 5; url=
http://www.w3.org/pub/WWW/People.html
Retry-After 若是實體暫時不可用,能夠設置這個值讓客戶端重試,可使用時間段(單位是秒)或者HTTP時間
Example 1: Retry-After: 120
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),可能的取值
"!" — under construction
"?" — dynamic
"G" — gateway to multiple parties
"N" — not tracking
"T" — tracking
"C" — tracking with consent
"P" — tracking only if consented
"D" — disregarding DNT
"U" — updated
TSV: ?
Upgrade 請求客戶端升級協議
Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket
Vary 通知下級代理如何匹配將來的請求頭已讓其決定緩存的響應是否可用而不是從新從源主機請求新的
Example 1: 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 點擊劫持保護:
deny frame中不渲染
sameorigin 若是源不匹配不渲染
allow-from 容許指定位置訪問
allowall 不標準,容許任意位置訪問
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框架插件<meta http-equiv="X-UA-Compatible" content="chrome=1" />
X-UA-Compatible: IE=EmulateIE7
X-UA-Compatible: IE=edge
X-UA-Compatible: Chrome=1
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