http頭部信息詳解
打開一個網頁(以淘寶網站為例)就會出現相對應的內容,這些內容是通過怎麽樣的方式展現在我們的面前呢?我們可以通過查看網頁的http頭部信息來獲取相關的內容,如HTTP的請求報文與響應報文等,如下所示
1、General:
Request URL:https://img.alicdn.com/tfs/TB1qfbtawMPMeJjy1XcXXXpppXa-160-56.gif
##請求的資源,可以是相對路徑,也可以是完整的URL
Request Method:GET
##請求方法,希望服務器端執行的動作,如GET、HEAD、POST等。
註:
HTTP的請求方法:
安全的方法:GET、HEAD
POST
擴展方法:LOCK、MKCOL、COPY、MOVE
GET是向web服務器請求一個文件;
HEAD是檢查一個對象是否存在,跟GET相似,但其不需要服務發送資源而僅傳回響應首部;
POST是向web服務器發送數據讓web服務器進行處理,支持HTML表單提交,表單中有用戶填入的數據,這些數據會發送到服務器端,由服務器存儲至某位置(例如發送處理程序);
PUT:與GET相反,向服務寫入文檔;發布系統
DELETE:請求刪除URL指向的資源
OPTIONS:探測服務器端對某資源所支持的請求方法
TRACE:追蹤請求資源要經過的防火墻、代理或網關等
Status Code:200 (from disk cache)
##響應報文代碼
1XX:信息性狀態碼
100:繼續
101:分組交換協議
2XX:成功狀態碼
200:OK
201:Created OK
202:被采納
203:非授權信息
204:無內容
205:重置內容
206:部分內容
3XX:重定向狀態碼
301:Moved Permanebtly 永久重定向,在響應報文中使用首部“Location:URL”指定資源現在所在的位置
302:Found 臨時重定向,在響應報文中使用首部“Location:URL”指定臨時資源位置
304:Not Modified,條件式請求中使用
305:使用代理
4XX:客戶端的錯誤
400:錯誤請求
401:未授權
403:Forbidden,請求被服務器拒絕
404:Not Found,服務器無法找到請求的URL
405:Method Not Allowed,不允許使用此方法請求響應的URL
5XX:服務器類的錯誤
500:Internal Server Error,服務器內部錯誤
502:Bad Gateway:代理服務器從上遊收到一條偽響應
503:Service Unavailable,服務器此時無法提供服務,但將來可能可用
Remote Address:113.105.222.180:443
##遠程地址
Referrer Policy:no-referrer-when-downgrade
##網站的 Referrer 策略
註:
No Referrer:任何情況下都不發送 Referrer 信息;
No Referrer When Downgrade:僅當發生協議降級(如 HTTPS 頁面引入 HTTP 資源,從 HTTPS 頁面跳到 HTTP 等)時不發送 Referrer 信息。這個規則是現在大部分瀏覽器默認所采用的;
Origin Only:發送只包含 host 部分的 Referrer。啟用這個規則,無論是否發生協議降級,無論是本站鏈接還是站外鏈接,都會發送 Referrer 信息,但是只包含協議 + host 部分(不包含具體的路徑及參數等信息);
Origin When Cross-origin:僅在發生跨域訪問時發送只包含 host 的 Referrer,同域下還是完整的。它與 Origin Only 的區別是多判斷了是否 Cross-origin。需要註意的是協議、域名和端口都一致,才會被瀏覽器認為是同域;
Unsafe URL:無論是否發生協議降級,無論是本站鏈接還是站外鏈接,統統都發送 Referrer 信息。正如其名,這是最寬松而最不安全的策略;
2、Response Headers:
access-control-allow-origin:*
##是HTML5中定義的一種解決資源跨域的策略,通過服務器端返回帶有Access-Control-Allow-Origin標識的Response header,用來解決資源的跨域權限問題。
age:1449207
##當代理服務器用自己緩存的實體去響應請求時,用該頭部表明該實體從產生到現在經過多長時間了
cache-control:max-age=31536000
##指定請求和響應遵循的緩存機制。在請求消息或響應消息中設置Cache-Control並不會修改另一個消息處理過程中的緩存處理過程。請求時的緩存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,響應消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。網頁的緩存通過HTTP消息頭中的“Cache-control”來控制,常見的取值有private、no-cache、max-age、must-revalidate等,默認為private。
各個消息中的指令含義如下:
Public指示響應可被任何緩存區緩存。
Private指示對於單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許服務器僅僅描述當用戶的部分響應消息,此響應消息對於其他用戶的請求無效。
no-cache指示請求或響應消息不能緩存
no-store用於防止重要的信息被無意的發布。在請求消息中發送將使得請求和響應消息都不使用緩存。
max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。
min-fresh指示客戶機可以接收響應時間小於當前時間加上指定時間的響應。
max-stale指示客戶機可以接收超出超時期間的響應消息。如果指定max-stale消息的值,那麽客戶機可以接收超出超時期指定值之內的響應消息。
content-length:31448
##表示內容長度,用於描述HTTP消息實體的傳輸長度the transfer-length of the message-body,如果head中有Content-Length,那麽這個Content-Length既表示實體長度,又表示傳輸長度。如果實體長度和傳輸長度不相等(比如說設置了Transfer-Encoding),那麽則不能設置Content-Length。如果設置了Transfer-Encoding,那麽Content-Length將被忽視。
content-type:image/gif
## MediaType,即是Internet Media Type,互聯網媒體類型;也叫做MIME
型,在Http協議消息頭中,使用Content-Type來表示具體請求中的媒體類型息。
常見的媒體格式類型如下:
text/html : HTML格式
text/plain :純文本格式
text/xml : XML格式
image/gif :gif圖片格式
image/jpeg :jpg圖片格式
image/png:png圖片格式
date:Thu, 31 Aug 2017 13:20:44 GMT
## Date頭域表示消息發送的時間,時間的描述格式由rfc822定義。
eagleid:7169dea815056348519994986e
##請求變量的實體標簽的當前值
expires:Fri, 31 Aug 2018 13:20:44 GMT
##響應過期的日期和時間
last-modified:Wed, 30 Aug 2017 01:19:14 GMT
##請求資源的最後修改時間
server:Tengine
##web服務器軟件名稱
status:200
##狀態碼
timing-allow-origin:*
##如果使用 CDN的話,需要讓 CDN 服務商加上 Timing-Allow-Origin 的響應頭,才能拿到靜態資源的數據。
via:cache22.l2cn62[0,200-0,H],cache40.l2cn62[1,0], cache1.cn223[0,200-0,H], cache8.cn223[1,0]
##列出從客戶端到 OCS 或者相反方向的響應經過了哪些代理服務器,他們用什麽協議(和版本)發送的請求。
當客戶端請求到達第一個代理服務器時,該服務器會在自己發出的請求裏面添加 Via 頭部,並填上自己的相關信息,當下一個代理服務器 收到第一個代理服務器的請求時,會在自己發出的請求裏面復制前一個代理服務器的請求的Via頭部,並把自己的相關信息加到後面,以此類推,當 OCS 收到最後一個代理服務器的請求時,檢查 Via 頭部,就知道該請求所經過的路由
x-cache:HIT TCP_MEM_HIT dirn:2:356748237
##反向代理服務器使用的 HTTP 頭部
x-swift-cachetime:30545095
##指明使用的具體熱點緩存技術
x-swift-savetime:Tue, 12 Sep 2017 00:35:49 GMT
##表示什麽時間點緩存住該資源的
3、equest Headers:
Provisional headers are shown
Referer:https://www.taobao.com/
##表示瀏覽器所訪問的前一個頁面,可以認為是之前訪問頁面的鏈接將瀏覽器帶到了當前頁面
User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Mobile Safari/537.36
##瀏覽器的身份標識字符串
http頭部信息詳解