更新時(shí)間:2021年02月26日16時(shí)21分 來(lái)源:傳智教育 瀏覽次數(shù):
HTTP通信機(jī)制是在一次完整的HTTP通信過(guò)程中,Web瀏覽器與Web服務(wù)器之間將完成下列7個(gè)過(guò)程:
1. 建立 TCP 連接
在HTTP工作開(kāi)始之前,Web瀏覽器首先通過(guò)網(wǎng)絡(luò)與Web服務(wù)器建立連接,該連接是通過(guò)TCP協(xié)議來(lái)完成的,該協(xié)議與 IP 協(xié)議共同構(gòu)建 Internet,即著名的 TCP/IP 協(xié)議族,因此 Internet 又被稱(chēng)作是TCP/IP 網(wǎng)絡(luò)。HTTP 是比 TCP 更高層次的應(yīng)用層協(xié)議,根據(jù)規(guī)則,只有低層協(xié)議建立之后才能進(jìn)行更高層協(xié)議的連接,因此,首先要建立 TCP 連接,一般 TCP 連接的端口號(hào)是 80。
2. Web 瀏覽器向 Web 服務(wù)器發(fā)送請(qǐng)求命令
一旦建立了 TCP 連接,Web 瀏覽器就會(huì)向 Web 服務(wù)器發(fā)送請(qǐng)求命令,例如GET/sample/hello.jspHTTP/1.1。
3. Web 瀏覽器發(fā)送請(qǐng)求頭信息
瀏覽器發(fā)送其請(qǐng)求命令之后,還要以頭信息的形式向 Web 服務(wù)器發(fā)送一些別的信息,之后瀏覽器發(fā)送了一空白行來(lái)通知服務(wù)器,它已經(jīng)結(jié)束了該頭信息的發(fā)送。
4. Web 服務(wù)器應(yīng)答
客戶(hù)機(jī)向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器會(huì)向客戶(hù)機(jī)回送應(yīng)答, 如,HTTP/1.1 200 OK ,應(yīng)答的第一部分是協(xié)議的版本號(hào)和應(yīng)答狀態(tài)碼。
5. Web 服務(wù)器發(fā)送應(yīng)答頭信息
正如客戶(hù)端會(huì)隨同請(qǐng)求發(fā)送關(guān)于自身的信息一樣,服務(wù)器也會(huì)隨同應(yīng)答向用戶(hù)發(fā)送關(guān)于它自己的數(shù)據(jù)及被請(qǐng)求的文檔。
6. Web 服務(wù)器向?yàn)g覽器發(fā)送數(shù)據(jù)
Web 服務(wù)器向?yàn)g覽器發(fā)送頭信息后,它會(huì)發(fā)送一個(gè)空白行來(lái)表示頭信息的發(fā)送到此為結(jié)束,接著,它就以 Content-Type 應(yīng)答頭信息所描述的格式發(fā)送用戶(hù)所請(qǐng)求的實(shí)際數(shù)據(jù)。
7. Web 服務(wù)器關(guān)閉 TCP 連接
一般情況下,一旦 Web 服務(wù)器向?yàn)g覽器發(fā)送了請(qǐng)求數(shù)據(jù),它就要關(guān)閉 TCP 連接,如果瀏覽器或者服務(wù)器在其頭信息加入了Connection:keep-alive,TCP 連接在發(fā)送后將仍然保持打開(kāi)狀態(tài),瀏覽器可以繼續(xù)通過(guò)相同的連接發(fā)送請(qǐng)求。保持連接節(jié)省了為每個(gè)請(qǐng)求建立新連接所需的時(shí)間,還節(jié)約了網(wǎng)絡(luò)帶寬。
猜你喜歡:
什么是進(jìn)程?Python進(jìn)程各部分內(nèi)容介紹
Python網(wǎng)絡(luò)爬蟲(chóng)獲取數(shù)據(jù)有哪幾種方式?
2021-01-27什么是字符串?怎樣在Python中添加字符串?
2021-01-27python如何實(shí)現(xiàn)斐波那契數(shù)列?【Python培訓(xùn)】
2021-01-18使用Pandas進(jìn)行數(shù)據(jù)清洗的具體操作
2021-01-18【面試題】Mongodb和MySQL存儲(chǔ)爬蟲(chóng)數(shù)據(jù)的特點(diǎn)是什么?
2021-01-18什么是Python模塊?Python模塊有幾類(lèi)?
2021-01-18北京校區(qū)