HTTP的操作过程
HTTP的操作過程
HTTP協(xié)議定義了瀏覽器(即萬維網(wǎng)客戶進(jìn)程)怎樣向萬維網(wǎng)服務(wù)器請(qǐng)求萬維網(wǎng)文檔,以及服務(wù)器怎樣把文檔傳送給瀏覽器。HTTP是面向事務(wù)(一系列的信息交換,不可分割的整體)的應(yīng)用層協(xié)議,它是萬維網(wǎng)上能夠可靠地交換文件的重要基礎(chǔ)。
HTTP 不僅傳送完成超文本跳轉(zhuǎn)所必需的信息, 而且也傳送任何可從互聯(lián)網(wǎng)上得到的 信息, 如文本、 超文本、 聲音和圖像等。
萬維網(wǎng)的大致工作過程,如下圖:
每個(gè)萬維網(wǎng)網(wǎng)點(diǎn)都有一個(gè) 服務(wù)器進(jìn)程, 它不斷地監(jiān)聽 TCP的端口80, 以便發(fā)現(xiàn)是否有瀏覽器向它發(fā)出連接建立請(qǐng)求。一旦監(jiān)聽到連接建立請(qǐng)求并建立了TCP 連接之后, 瀏覽器就向萬維網(wǎng) 服務(wù)器發(fā)出 瀏覽某個(gè)頁面的請(qǐng)求, 服務(wù)器接著就返回所請(qǐng)求的頁面作為響應(yīng)。 最后, TCP連接就被釋放了。 在瀏覽器和 服務(wù)器之間的請(qǐng)求和響應(yīng)的交互, 必須按照規(guī)定的格式和遵循一定的規(guī)則。 這些格式和規(guī)則就是超文本傳送協(xié)議HTTP。
用戶在點(diǎn)擊鼠標(biāo)鏈接某個(gè)萬維網(wǎng)文檔時(shí), HTTP協(xié)議首先要和服務(wù)器建立TCP連接。 這需要使用三報(bào)文握手。
當(dāng)建立TCP連接的三報(bào)文握手的前兩部分完成后(即經(jīng)過了 一個(gè)RTT時(shí)間后), 萬維網(wǎng)客戶就把 HTTP請(qǐng)求報(bào)文, 作為建立TCP連接的三報(bào)文握手中的第三個(gè)報(bào)文的數(shù)據(jù), 發(fā)送給萬維網(wǎng)服務(wù)器。 服務(wù)器收到HTTP請(qǐng)求報(bào)文后, 就把所請(qǐng)求的文檔作為響應(yīng)報(bào)文 返回給客戶。
持續(xù)連接和非持續(xù)連接
HTTP/1.0的主要缺點(diǎn),就是每請(qǐng)求 一個(gè)文檔就要有兩倍RTT的開銷。 若一個(gè)主頁上 有很多鏈接的對(duì)象(如圖片等) 需 要依次進(jìn)行鏈接, 那么每一 次鏈接下載都導(dǎo)致2 xRTT的開銷。 另一種開銷就是萬維網(wǎng)客戶和服務(wù)器每一 次 建立新的TCP 連接都要分配緩存和變量。
特別是萬維網(wǎng)服務(wù)器往往要同時(shí)服務(wù)于大量客戶的請(qǐng)求, 所以這種非持續(xù)連接會(huì)使萬維網(wǎng)服務(wù)器的負(fù)擔(dān)很重。 好在 瀏覽器都能夠打開5 ~ 10個(gè)并行的TCP連接, 而每一個(gè)TCP連接處理客戶的一個(gè)請(qǐng)求。 因此, 使用并行 TCP連接可以縮短響應(yīng)時(shí)間。
HTTP/1.1協(xié)議較好地解決了這個(gè)問題,使用了持續(xù)鏈接,持續(xù)連接就是萬維網(wǎng)服務(wù)器在發(fā)送 響應(yīng)后仍然在 一段時(shí)間內(nèi)保持這條連接, 使同 一個(gè)客戶(瀏覽器)和該服務(wù)器可以繼續(xù)在這條連接上 傳送后 續(xù)的HTTP請(qǐng)求報(bào)文和響應(yīng)報(bào)文。這并不局限于傳送同 一個(gè)頁面上鏈接的文檔, 而 是只要這些文檔都在同 一個(gè)服務(wù)器上就行。
持續(xù)連接的兩種工作方式:
- 非流水線方式,是客戶在收到前 一個(gè)響應(yīng)后才能發(fā)出下一個(gè)請(qǐng)求。
- 流水線方式,是客戶在收到 HTTP的響應(yīng)報(bào)文之前就能夠接著發(fā)送新的請(qǐng)求報(bào)文。
總結(jié)
- 上一篇: Win11开启摄像头的方法如何启动电脑摄
- 下一篇: Web和HTTP基本术语和概念