HTTP請求解析--從一個請求開始


先來看看一個http請求實例

請求行: POST /chapter17/user.html HTTP/1.1

請求頭:

Accept: application/json, text/javascript, */*; q=0.01

Accept-Encoding: gzip, deflate

Accept-language: zh-CN,zh;q=0.8

Connection: keep-alive

Content-Length: 38

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

Host: 192.168.1.66:92

Orgin: http://localhost:3000/

Referer: http://localhost:3000/

User-Agent:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

請求行

組成: 請求方法 空格 請求URL的path 空格 協議名及版本號

請求方法: 常見的即POST、GET,此外還包括PUT、HEAD、DELETE、OPTIONS、TRACE

請求URL的Path: path= pathname+search, 與請求頭里的Host組成完整url地址

備注: host= hostname+port,對於網址的組成可查看: http://www.cnblogs.com/yanze/p/6009127.html,這個很重要

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

請求頭

參數詳解:

Accept  客戶端能夠接受的MIME類型(別發其他類型給我)

application/json, text/javascript, */*; q=0.01,由此可知可接受application/json, text/javascript,但*/* q=0.01又是什么?

*/*,*是通配符,即任何字符串,*/*代表可為任何MIME類型

q(q-factor品質因數)為權重,代表對某種類型的喜好程度,以‘,’為分割標識,默認為1

application/json, text/javascript, */*; q=0.01=>application/json;q=1, text/javascript;q=1, */*; q=0.01,解釋起來就是瀏覽器可接受任何文件,但最傾向application/json和 text/javascript

 

Accept-Encoding 瀏覽器能接受的編碼方式

默認為identify,identify用於指代自身(例如:未經過壓縮和修改)。除非特別指明,這個標記始終可以被接受。

Accept-Encoding: * 任何類型

Accept-Encoding: gzip, deflate gzip與deflate類型

 

Accept-language 瀏覽器可接受的語言

zh-CN,zh;q=0.8 zh-CH(zhongwen china中文簡體)(zh代表中文全體,包括簡體、繁體、方言等)

 

Connection

詳情可查看: http://www.cnblogs.com/yanze/p/7750239.html

 

Content-Length 表示發送給對方的消息主體的大小

大小單位為十進制數字表示的八位元組的數目

 

Content-Type 當前發送信息的MIME類型

 

Host 當前發送請求的瀏覽器的host

host=hostname+port

 

Orgin(源頭)

origin= protocal+hostname+port

 

Referer(引用頁)

referer= protocal+hostname+port+search

referer原本是referrer,referer是誤稱,但錯的人多了也就正確了。。

origin與referer與諸多區別:

1.origin只用於Post請求,Referer用於所有請求

2.設置referer容易被csrf攻擊,origin更具安全性,詳見:http://blog.csdn.net/zdavb/article/details/51161130

 

User-Agent(用戶代理)

User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extentions>

如: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

不同瀏覽器,不同系統會有不同的user-agent,這涉及到瀏覽器大戰的那段雞飛狗跳的歷史,詳情可見: http://www.cnblogs.com/egger/archive/2013/04/20/3032070.html

一言以蔽之: 現今混亂的場面, IE是始作俑者

 

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM