HTTP请求头和响应头
請求頭
Accept:瀏覽器可接受的MIME類型。
就是希望服務器返回什么類型的數據,比如application/json,text/html,image/png,*/*
Accept:application/json, text/javascript, */*; q=0.01
q是Quality values,權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向于獲得其“;”之前的類型表示的內容,若沒有指定 q 值,則默認為1,若被賦值為0,則用于提醒服務器哪些是瀏覽器不接受的內容類型
Accept-Charset:瀏覽器可接受的字符集。
Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1
Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。Servlet能夠向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。許多情形下這可以減少5到10倍的下載時間。?
Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
?Accept-Language:瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。
Accept-Language: zh-CN,zh;q=0.9
Access-Control-Request-Headers :出現于 preflight request (預檢請求)中,用于通知服務器在真正的請求中會采用哪些請求頭。
Access-Control-Request-Headers: X-PINGOTHER, Content-Type?
?Access-Control-Request-Method :出現于 preflight request (預檢請求)中,用于通知服務器在真正的請求中會采用哪種 ?HTTP 方法。因為預檢請求所使用的方法總是 OPTIONS ,與實際請求所使用的方法不一樣,所以這個請求頭是必要的。
Access-Control-Request-Method: POST?
Authorization:授權信息,通常會在服務器返回401 Unauthorized 狀態碼以及WWW-Authenticate 消息頭之后在后續請求中發送此消息頭。
Authorization: <type> <credentials>
Cookie:這是最重要的請求頭信息之一
Cookie: name=value; name2=value2; name3=value3?
From:請求發送者的email地址,由一些特殊的Web客戶程序使用,瀏覽器不會用到它。?
From: webmaster@example.org
Host:指明了請求將要發送到的服務器主機名和端口號。如果沒有包含端口號,會自動使用被請求服務的默認端口(比如HTTPS URL使用443端口,HTTP URL使用80端口)。
Host: www.baidu.com
If-Match:這是一個條件請求首部。在請求方法為 GET 和 HEAD 的情況下,服務器僅在請求的資源的 ETag值和If-Match的值一致時才會返回資源。否則返回412 Precondition Failed(先決條件失敗)。而對于 PUT 或其他非安全方法來說,只有在滿足條件的情況下才可以將資源上傳。
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-None-Match:這是一個條件式請求首部。對于 GET 和 HEAD 請求方法來說,當且僅當服務器上沒有任何資源的 ETag 屬性值與If-None-Match的值一致的時候,服務器端才會返回所請求的資源,響應碼為 200 。對于其他方法來說,也是沒有值一致的時候,才會對請求進行相應的處理。
If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"?
If-Modified-Since:只有當所請求的內容在If-Modified-Since指定的日期之后又經過修改,才返回它(200狀態碼),否則返回304“Not Modified”應答。
If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
If-Unmodified-Since:條件式請求首部。只有當資源在指定的時間之后沒有進行過修改的情況下,服務器才會返回請求的資源,或是接受 POST 或其他 non-safe 方法的請求。如果所請求的資源在指定的時間之后發生了修改,那么會返回 412 (Precondition Failed) 錯誤。
例如在某些wiki應用中的做法:假如在原始副本獲取之后,服務器上所存儲的文檔已經被修改,那么對其作出的編輯會被拒絕提交
If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT
Origin:指示了請求來自于哪個站點。該字段僅指示服務器名稱,并不包含任何路徑信息。
Origin: https://developer.mozilla.org?
Referer:當前請求頁面的來源頁面的地址,即表示當前頁面是通過此來源頁面里的鏈接進入的。服務端一般使用 Referer 請求頭識別訪問來源,可能會以此進行統計分析、日志記錄以及緩存優化等。?
Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript
響應頭
?Access-Control-Allow-Credentials: 響應頭表示是否可以將對請求的響應暴露給頁面。返回true則可以,其他值均不可以。
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers :用于 preflight request (預檢請求 OPTIONS請求)中,列出了將會在正式請求的 Access-Control-Request-Headers 字段中出現的首部信息。?
Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests
Access-Control-Allow-Methods: 在對 preflight request(預檢請求)的應答中明確了客戶端所要訪問的資源允許使用的方法或方法列表。?
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: 指定了該響應的資源是否被允許與給定的origin共享。
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: https://developer.mozilla.org
Access-Control-Max-Age :表示 preflight request ?(預檢請求)的返回結果(即 Access-Control-Allow-Methods 和Access-Control-Allow-Headers 提供的信息) 可以被緩存多久(單位秒)。
Access-Control-Max-Age: 600??
Clear-Site-Data:表示清除當前請求網站有關的瀏覽器數據(cookie,存儲,緩存)。它讓Web開發人員對瀏覽器本地存儲的數據有更多控制能力。
// 登出時清除所有本地存儲詩句
Clear-Site-Data: "cache", "cookies", "storage", "executionContexts"?
ETag:資源的特定版本的標識符。比較ETag能快速確定此資源是否變化,這可以讓緩存更高效,并節省帶寬,因為如果內容沒有改變,Web服務器不需要發送完整的響應
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"?
Expires:在此日期/時間之后,響應過期,如cookie過期。
無效的日期,比如 0, 代表著過去的日期,即該資源已經過期。
如果在Cache-Control響應頭設置了 "max-age" 或者 "s-max-age" 指令,那么 Expires 頭會被忽略。?
Expires: Wed, 21 Oct 2015 07:28:00 GMT
Set-Cookie:服務器端設置客戶端的?cookie。
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
通用首部
?Cache-Control :通用消息頭字段,被用于在http請求和響應中,通過指定指令來實現緩存機制。緩存指令是單向的,這意味著在請求中設置的指令,不一定被包含在響應中。
Cache-control: no-cache
Cache-Control: max-age=<seconds>
Connection:表示是否需要持久連接。如果該值是“keep-alive”,網絡連接就是持久的,不會關閉,使得對同一個服務器的請求可以繼續在該連接上完成。
Connection: keep-alive
Connection: close
Keep-Alive:允許消息發送者暗示連接的狀態,還可以用來設置超時時長和最大請求數。需要將 The Connection 首部的值設置為 ?"keep-alive" 這個首部才有意義
// timeout:指定了一個空閑連接需要保持打開狀態的最小時長(以秒為單位)
// max:在連接關閉之前,在此連接可以發送的請求的最大值
Keep-Alive: timeout=5, max=1000?
Date :包含了報文創建的日期和時間。
Date: Wed, 21 Oct 2015 07:28:00 GMT?
Last-Modified:服務器認定的資源做出修改的日期及時間。 它通常被用作一個驗證器來判斷接收到的或者存儲的資源是否彼此一致。
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
Location:頁面重定向的地址。一般在響應碼為3xx的響應中才會有意義。
?Location: /index.html
實體報頭
Content-Encoding:用于對特定媒體類型的數據進行壓縮
Content-Encoding: gzip
Content-Language :用來說明訪問者希望采用的語言或語言組合,這樣的話用戶就可以根據自己偏好的語言來定制不同的內容。
Content-Language: de-DE, en-CA
Content-Length:指明發送給接收方的消息主體的大小,即用十進制數字表示的八位元組的數目。
Content-Length: <length>
Content-Type:用于指示資源的MIME類型 。
Content-Type: text/html; charset=utf-8
?參考:HTTP Headers - HTTP | MDN
總結
以上是生活随笔為你收集整理的HTTP请求头和响应头的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下一键交换Esc和caps
- 下一篇: Mysql 创建管理数据库内容上的打字练