1汉矿,什么是HTTP協(xié)議
????協(xié)議是指計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定和規(guī)則。
超文本傳輸協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最廣的一種網(wǎng)絡(luò)協(xié)議奋渔,它可以將超文本標(biāo)記語言(html)文檔從WEB服務(wù)器發(fā)送到客戶端的瀏覽器后添。
2,HTTP協(xié)議的工作原理
????首先我們打開瀏覽器瘟滨,在地址欄輸入url ,之后我們就可以看到頁面信息,原理是啥能颁?
????在我們輸入U(xiǎn)RL后杂瘸,瀏覽器就給WEB服務(wù)器發(fā)送了一個(gè)HTTP請(qǐng)求(http Request) ,在web服務(wù)器接收到HTTP請(qǐng)求后進(jìn)行處理赚窃,生成相應(yīng)的http響應(yīng)(http response)仪媒,然后發(fā)送給瀏覽器,瀏覽器經(jīng)過解析HTTP響應(yīng)中的HTML疫铜,我們就看到網(wǎng)頁了镜硕。
3运翼,深入了解HTTP工作原理
1,web瀏覽器創(chuàng)建套接字Socket,按照給定的IP(域名)和端口(80)來連接服務(wù)器Socket.Connect()兴枯。
2血淌,連接成功后,瀏覽器依據(jù)HTTP協(xié)議規(guī)范财剖,向web端服務(wù)器發(fā)送請(qǐng)求數(shù)據(jù)(請(qǐng)求行悠夯,請(qǐng)求頭,數(shù)據(jù)等) Socket.send()峰伙。
3疗疟,這個(gè)時(shí)候?yàn)g覽器需要等待服務(wù)器處理并返回?cái)?shù)據(jù)该默。
4瞳氓,web服務(wù)器使用Socket.Accept()等方法監(jiān)聽到瀏覽器連接后,開始接收瀏覽器發(fā)送過來的數(shù)據(jù),接到后匣摘,依據(jù)HTTP協(xié)議規(guī)范解析數(shù)據(jù)店诗,然后處理,最后將處理的結(jié)果(HTMl文檔)發(fā)回給瀏覽器 Socket.send()音榜。
5庞瘸,web服務(wù)器處理完后,關(guān)閉Socket赠叼。
6擦囊,瀏覽器接收到服務(wù)器發(fā)回的數(shù)據(jù)(html文檔)后,將結(jié)果在瀏覽器顯示嘴办,關(guān)閉Socket瞬场。
7,這樣一次瀏覽器到WEB服務(wù)器的互動(dòng)就結(jié)束了涧郊。
8贯被,然后再執(zhí)行下一次,一直循環(huán)妆艘。
4彤灶,HTTP請(qǐng)求報(bào)文的結(jié)構(gòu)
????HTTP請(qǐng)求報(bào)文分三部分
????第一部分:起始行
????第二部分:首部
????第三部分:主體
5,HTTP響應(yīng)報(bào)文結(jié)構(gòu)
????HTTP響應(yīng)報(bào)文分三部分
????第一部分:起始行
????第二部分:首部
????第三部分:主體
6批旺,一個(gè)完整的請(qǐng)求和響應(yīng)
1幌陕,啟動(dòng)Fiddler 打開瀏覽器 輸入 http://www.reibang.com
2,如圖