HTTP深入浅出个人总结
http遵循request/response模型
基本流程:web瀏覽器向web服務(wù)器發(fā)送請(qǐng)求,web服務(wù)器處理請(qǐng)求并回應(yīng)web瀏覽器
具體步驟:
1、建立tcp連接
web瀏覽器通過(guò)網(wǎng)絡(luò)(internet又稱(chēng)TCP/IP網(wǎng)絡(luò))和web服務(wù)器建立連接,
低層的協(xié)議建立之后才能進(jìn)行更高層協(xié)議(HTTP是比TCP更高層的應(yīng)用層協(xié)議)
一般的TCP端口為80
2、web瀏覽器向web服務(wù)器發(fā)送請(qǐng)求命令
3、web瀏覽器發(fā)送頭信息
以頭信息的形式向web服務(wù)器發(fā)送別的信息,之后發(fā)送一空白行,通知服務(wù)器結(jié)束該頭文件的發(fā)送
4、web服務(wù)器回應(yīng)
如:HTTP/1.1 200 ok
HTTP/1.1是協(xié)議的版本號(hào) 200是應(yīng)答狀態(tài)碼
5、web服務(wù)器發(fā)送應(yīng)答頭信息
服務(wù)器隨同應(yīng)答向用戶(hù)發(fā)送關(guān)于它自己的數(shù)據(jù)幾被請(qǐng)求文檔
6、web服務(wù)器想瀏覽器發(fā)送數(shù)據(jù)
發(fā)送頭信息它會(huì)發(fā)送一個(gè)空白行來(lái)表示頭信息發(fā)送到此結(jié)束
7、關(guān)閉TCP連接
web服務(wù)器向web瀏覽器發(fā)送了就要關(guān)閉
如果加入connection:keep-aliveTCP將仍保持打開(kāi)狀態(tài),保持連接狀態(tài)能夠節(jié)省時(shí)間和網(wǎng)絡(luò)帶寬
請(qǐng)求信息3部分:
請(qǐng)求方法/URL協(xié)議/版本
請(qǐng)求頭?
請(qǐng)求正文
例子:
下面是一個(gè)HTTP請(qǐng)求的例子:
GET/sample.jspHTTP/1.1?? (1)
Accept:p_w_picpath/gif.p_w_picpath/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate ? ? (2)
?/* 表示結(jié)束的空白行 ? */
username=jinqiao&password=1234????(3)
總結(jié):
.客戶(hù)端完整的發(fā)送一個(gè)請(qǐng)求(請(qǐng)求頭+請(qǐng)求體)服務(wù)器收到這個(gè)信息并處理完成后返回一個(gè)響應(yīng)包HTTP應(yīng)答,然后連接關(guān)閉;
客戶(hù)端發(fā)送請(qǐng)求是一次把請(qǐng)求行和請(qǐng)求體全部發(fā)出;
瀏覽器回根據(jù)你在地址欄里輸入的url進(jìn)行DNS解析;
服務(wù)器使用常見(jiàn)apache+tomato進(jìn)行處理,apache用來(lái)接收HTTP應(yīng)答,然后請(qǐng)求給tomato進(jìn)行處理;
建立TCP連接是在地址欄輸入完地址敲下回車(chē)后,瀏覽器有一個(gè)DNS解析過(guò)程,將域名轉(zhuǎn)成IP然后瀏覽器根據(jù)IP加上默認(rèn)的80端口建立好TCP連接;
HTTP請(qǐng)求的信息頭 \r\n和包體都是一起發(fā)送的。
轉(zhuǎn)載于:https://blog.51cto.com/11601713/1812421
總結(jié)
以上是生活随笔為你收集整理的HTTP深入浅出个人总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。