請求一個萬維網(wǎng)文檔所需的時間
發(fā)布時間:2014/9/14 20:01:15 訪問次數(shù):1537
HTTP協(xié)議是無狀態(tài)的(stateless)。也就是說,同一個客戶第二次訪問同一個服務器上的頁面時, REF200AU服務器的響應與第一次被訪問時的相同(假定現(xiàn)在服務器還沒有把該頁面更新),因為服務器并不記得曾經(jīng)訪問過的這個客戶,也不記得為該客戶曾經(jīng)服務過少次。HTTP的無狀態(tài)特性簡化了服務器的設計,使服務器更容易支持大量并發(fā)的HTTP請求。
下面我們粗略估算一下,從瀏覽器請求一個萬維網(wǎng)文檔到收到整個文檔所需的時間。用戶在點擊鼠標鏈接某個萬維網(wǎng)文檔時,HTTP協(xié)議首先要和服務器建立TCP連接。這需要使用三次握手。當三次握手的前兩部分完成后(即經(jīng)過了一個RTT時間后),萬維網(wǎng)客戶就把HTTP請求報文作為三次握手的第三個報文的數(shù)據(jù)發(fā)送給萬維網(wǎng)服務器。服務器收到HTTP請求報文后,就把所請求的文檔作為響應報文返回給客戶。
從圖6-10可看出,請求·個萬維網(wǎng)文檔所需的時間是該文檔的傳輸時間(與文檔大小成正比)加上兩倍往返時間RTT(~個RTT用于連接TCP連接,另一個RTT用于請求和接收萬維網(wǎng)文檔。這里TCP建立連接的三次握手的第三個報文段中捎帶了客戶對萬維網(wǎng)文
檔的請求)。
HTTP/1.0的主要缺點,就是每請求一個文檔就要有兩倍RTT的開銷。若…個主頁上有很多鏈接的對象(如圖片等)需要依次進行鏈接,那么每一次鏈接下載都導致2×RTT的開銷。另一種開銷就是萬維網(wǎng)客戶和服務器為每一次建立新的TCP連接都要分配緩存和變量。特別是萬維網(wǎng)服務器往往要同時服務于大量客戶的請求,所以這種非持續(xù)連接會使萬維網(wǎng)服務器的負擔很重。好在瀏覽器都提供了能夠打開5~10個并行的TCP連接i而每一個TCP連接處理客戶的一個請求。因此,使用并行TCP連接可以縮短響應時間。
HTTP/1.1協(xié)議較好地解決了這個問題,它使用了持續(xù)連接(persistent connection)。所謂持續(xù)連接就是萬維網(wǎng)服務器在發(fā)送響應后仍然在一段時間內保持這條連接,使同一個客戶(瀏覽器)和該服務器可以繼續(xù)在這條連接上傳送后續(xù)的HTTP請求報文和響應報文。這并不局限于傳送同一個頁面上鏈接的文檔,而是只要這些文檔都在同一個服務器上就行。目前一些流行的瀏覽器(例如,IE 6.0>的默認設置就是使用HTTP/1.1。如果用戶不愿意使用持續(xù)連接的瀏覽器,可以點擊IE瀏覽器上面的“工具”,然后點擊“Internet選項”,再點擊“高級”,把“HTTP l.1設置”的選擇取消即可。
HTTP協(xié)議是無狀態(tài)的(stateless)。也就是說,同一個客戶第二次訪問同一個服務器上的頁面時, REF200AU服務器的響應與第一次被訪問時的相同(假定現(xiàn)在服務器還沒有把該頁面更新),因為服務器并不記得曾經(jīng)訪問過的這個客戶,也不記得為該客戶曾經(jīng)服務過少次。HTTP的無狀態(tài)特性簡化了服務器的設計,使服務器更容易支持大量并發(fā)的HTTP請求。
下面我們粗略估算一下,從瀏覽器請求一個萬維網(wǎng)文檔到收到整個文檔所需的時間。用戶在點擊鼠標鏈接某個萬維網(wǎng)文檔時,HTTP協(xié)議首先要和服務器建立TCP連接。這需要使用三次握手。當三次握手的前兩部分完成后(即經(jīng)過了一個RTT時間后),萬維網(wǎng)客戶就把HTTP請求報文作為三次握手的第三個報文的數(shù)據(jù)發(fā)送給萬維網(wǎng)服務器。服務器收到HTTP請求報文后,就把所請求的文檔作為響應報文返回給客戶。
從圖6-10可看出,請求·個萬維網(wǎng)文檔所需的時間是該文檔的傳輸時間(與文檔大小成正比)加上兩倍往返時間RTT(~個RTT用于連接TCP連接,另一個RTT用于請求和接收萬維網(wǎng)文檔。這里TCP建立連接的三次握手的第三個報文段中捎帶了客戶對萬維網(wǎng)文
檔的請求)。
HTTP/1.0的主要缺點,就是每請求一個文檔就要有兩倍RTT的開銷。若…個主頁上有很多鏈接的對象(如圖片等)需要依次進行鏈接,那么每一次鏈接下載都導致2×RTT的開銷。另一種開銷就是萬維網(wǎng)客戶和服務器為每一次建立新的TCP連接都要分配緩存和變量。特別是萬維網(wǎng)服務器往往要同時服務于大量客戶的請求,所以這種非持續(xù)連接會使萬維網(wǎng)服務器的負擔很重。好在瀏覽器都提供了能夠打開5~10個并行的TCP連接i而每一個TCP連接處理客戶的一個請求。因此,使用并行TCP連接可以縮短響應時間。
HTTP/1.1協(xié)議較好地解決了這個問題,它使用了持續(xù)連接(persistent connection)。所謂持續(xù)連接就是萬維網(wǎng)服務器在發(fā)送響應后仍然在一段時間內保持這條連接,使同一個客戶(瀏覽器)和該服務器可以繼續(xù)在這條連接上傳送后續(xù)的HTTP請求報文和響應報文。這并不局限于傳送同一個頁面上鏈接的文檔,而是只要這些文檔都在同一個服務器上就行。目前一些流行的瀏覽器(例如,IE 6.0>的默認設置就是使用HTTP/1.1。如果用戶不愿意使用持續(xù)連接的瀏覽器,可以點擊IE瀏覽器上面的“工具”,然后點擊“Internet選項”,再點擊“高級”,把“HTTP l.1設置”的選擇取消即可。