之前一篇文章片橡,大概介紹了HTTP Headers,接下來我們看看常見的header信息和它所代表的含義海蔽。
首先打開騰訊首頁钥组,控制臺Network输硝。
www.qq.com請求:
Genaral Headers:
- Request URL:http://www.qq.com/
- Request Method:GET
- Status Code:200 OK
- Remote Address:127.0.0.1:8888
- Referrer Policy:unsafe-url
Request URL:請求的URL
URL(Uniform Resource Locator即統(tǒng)一資源定位符)今瀑,互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示程梦,是互聯(lián)網(wǎng)上標準資源的地址。
基本URL包含:模式(或稱協(xié)議)橘荠、服務(wù)器名稱(或IP地址)屿附、路徑和文件名,如“協(xié)議://授權(quán)/路徑?查詢”哥童。
Request Method:請求方法
常見的Request Method有:get挺份、post、head
get和post的區(qū)別:本質(zhì)上并無區(qū)別贮懈,只是http協(xié)議上對這兩個方法有些規(guī)定匀泊。比如:1、GET使用URL傳參朵你,而POST將數(shù)據(jù)放在BODY中各聘。2、GET的URL會有長度上的限制抡医,則POST的數(shù)據(jù)則可以非常大躲因。3、POST比GET安全,因為數(shù)據(jù)在地址欄上不可見大脉。
從其他角度來看:get是Safe搞监、Idempotent的,get更像是查詢語句镰矿,不會改變服務(wù)器任何狀態(tài)琐驴,所以他是Safe(安全)、Idempotent(冪等的)衡怀。Safe可理解為只讀棍矛,Idempotent可理解為多次訪問相等。而post不是Safe抛杨,也不是Idempotent的够委,post更像是insert語句,會改變服務(wù)器狀態(tài)怖现。
從緩沖角度來看:服務(wù)端程序在接收客戶端表單提交的數(shù)據(jù)時茁帽,需要先將數(shù)據(jù)存儲到一個內(nèi)存空間,然后做解析等后續(xù)工作屈嗤,這個內(nèi)存空間一般稱之為接收緩沖區(qū)潘拨。對于post數(shù)據(jù)因為有Content-Length標記,服務(wù)端可以按標記的長度創(chuàng)建一個等于或稍大于提交數(shù)據(jù)的緩沖區(qū)饶号。對于get铁追,因為事先不知道提交的數(shù)據(jù)有多少,需要估計緩沖區(qū)長度茫船,如果緩沖區(qū)很大而接收數(shù)據(jù)很小會造成內(nèi)存浪費琅束,而如果緩沖區(qū)小于接收數(shù)據(jù),就可能造成緩沖區(qū)溢出算谈。
Status Code:狀態(tài)碼
(消息)1**:這一類型的狀態(tài)碼涩禀,代表請求已被接受,需要繼續(xù)處理然眼。這類響應(yīng)是臨時響應(yīng)艾船,只包含狀態(tài)行和某些可選的響應(yīng)頭信息,并以空行結(jié)束高每。
(成功)2**:這一類型的狀態(tài)碼屿岂,代表請求已成功被服務(wù)器接收、理解鲸匿、并接受爷怀。
(重定向)3**: 這類狀態(tài)碼代表需要客戶端采取進一步的操作才能完成請求。
(請求錯誤)4**:這類的狀態(tài)碼代表了客戶端看起來可能發(fā)生了錯誤晒骇,妨礙了服務(wù)器的處理霉撵。
(服務(wù)器錯誤)5磺浙、6:這類狀態(tài)碼代表了服務(wù)器在處理請求的過程中有錯誤或者異常狀態(tài)發(fā)生,也有可能是服務(wù)器意識到以當(dāng)前的軟硬件資源無法完成對請求的處理徒坡。
Remote Address:遠程地址
一般是127.0.0.1:8888或者遠程服務(wù)器ip地址+端口號
Referrer Policy:來源管制
這個東西怎么理解呢撕氧?我研究了好一會才明白,我們知道鏈接都是跳來跳去的喇完。當(dāng)從一個鏈接跳到另一個鏈接伦泥,另一個鏈接的referer就記錄了是從哪個鏈接跳來的。Referrer Policy就是管理這個來源信息的機制锦溪。
no-referrer:整個 Referer 首部會被移除不脯。訪問來源信息不隨著請求一起發(fā)送。
no-referrer-when-downgrade (默認值):在同等安全級別的情況下刻诊,引用頁面的地址會被發(fā)送(HTTPS->HTTPS)防楷,但是在降級的情況下不會被發(fā)送 (HTTPS->HTTP)
origin:在任何情況下,僅發(fā)送文件的源作為引用地址则涯。例如 https://example.com/page.html 會將 https://example.com/ 作為引用地址复局。
unsafe-url:無論是同源請求還是非同源請求,都發(fā)送完整的 URL(移除參數(shù)信息之后)作為引用地址粟判。
ps:就著昨天亿昏,‘www.qq.com’還是‘unsafe-url’的,今天就變成了‘no-referrer-when-downgrade’档礁,難道我發(fā)現(xiàn)了什么不可告人的秘密角钩?
Request Headers:
- Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8
- Accept-Encoding:gzip, deflate
- Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
- Cache-Control:max-age=0
- Cookie:(此處省略一長串字符串)
- Host:www.qq.com
- Proxy-Connection:keep-alive
- Referer:https://www.baidu.com/link?url=-nT7ePvEGh_eOxm-pYc24q7sb_3EwR1ueUCM2wTbMF_&wd=&eqid=c9103ed70002ccfe000000065975e9bf
- Upgrade-Insecure-Requests:1
- User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
Accept:客戶端可以處理的內(nèi)容類型,這種內(nèi)容類型用MIME類型來表示
text/plain:文本文件默認值呻澜。意思是 未知的文本文件 递礼,瀏覽器認為是可以直接展示的。
text/css:任何一個CSS文件想要在網(wǎng)頁上被解釋執(zhí)行就必須為text/css 文件易迹。
text/html:HTML5統(tǒng)一的html格式宰衙。
image/gif平道、image/jpeg睹欲、image/png、image/svg+xml:圖片格式一屋。
......
Accept-Encoding:客戶端發(fā)給服務(wù)器,聲明客戶端支持的編碼類型窘疮。默認是deflate,其余還有g(shù)zip冀墨、compress等闸衫。
gizp: GZIP常用于UNIX系統(tǒng)的文件壓縮。我們在Linux中經(jīng)常會用到后綴為.gz的文件诽嘉,它們就是GZIP格式的∥党觯現(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式弟翘,或者說一種文件格式。
comporess:compress是一個相當(dāng)古老的 unix 檔案壓縮指令骄酗,壓縮后的檔案會加上一個 .Z 延伸檔名以區(qū)別未壓縮的檔案稀余,壓縮后的檔案可以以 uncompress 解壓。由于gzip更理想趋翻,一般用gzip睛琳。
Accept-Language:聲明客戶端可以理解的自然語言,以及優(yōu)先選擇的區(qū)域方言踏烙。
师骗。
Cache-Control:用于指定所有緩存機制在整個請求/響應(yīng)鏈中必須服從的指令。
public:所有內(nèi)容都將被緩存(客戶端和代理服務(wù)器都可緩存)
private:內(nèi)容只緩存到私有緩存中(僅客戶端可以緩存讨惩,代理服務(wù)器不可緩存)
no-cache/no-store:瀏覽器需要重新發(fā)送請求辟癌。
max-age=xxx:緩存的內(nèi)容將在 xxx 秒后失效, 這個選項只在HTTP 1.1可用。
Cookie:客戶端cookie(不展開)
Host:客戶端地址(不展開)
Proxy-Connection:(代理鏈接荐捻、不展開)
Referer:來源愿待,能看到是從哪里鏈接過來的。
Upgrade-Insecure-Requests:(不展開)
User-Agent:可以看到客戶端系統(tǒng)版本靴患、瀏覽器版本
Response Headers:
- Cache-Control:max-age=60
- Content-Encoding:gzip
- Content-Type:text/html; charset=GB2312
- Date:Tue, 25 Jul 2017 02:01:24 GMT
- Expires:Tue, 25 Jul 2017 02:02:24 GMT
- Proxy-Connection:Keep-alive
- Server:squid/3.5.20
- Transfer-Encoding:chunked
- Vary:Accept-Encoding
- Vary:Accept-Encoding
- Vary:Accept-Encoding
- X-Cache:MISS from shenzhen.qq.com