免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

網站建設中關于并發連接數的解釋

2023-08-20    分類: 網站建設

最近網站常常報503錯誤:“HTTP Error 503. The service is unavailable”。但刷一兩下又正常。估計很可能是超過網站的并發連接數了。

究竟什么是http連接?一張頁面加載過程中,又是圖片又是樣式、腳本,對于這些東西的請求,是共用一個連接還是多個連接?

網上有人說,為了節省連接數,應該盡量將外部CSS,js合并,或者內聯;甚至圖片也合成一張,再用CSS定位。顯然,在這里,一個請求就用一個連接,請求完成連接即被關掉。

但IIS里,有選項“保持HTTP連接”,且有超時時間可供設置。如果每請求一樣東西,就開啟一個連接,并且這個連接遲遲不死,保持激活,那么要多少連接才夠用?這里的意思,應該是一個連接可以供多次使用。

究竟哪個才對?

其實都對。

http協議無狀態,無連接。無連接的含義就是限制每次連接只處理一個請求,收到應答后即斷開。但據說這個是http1.0。

http1.1里,提出了持久連接(persistentconnection)的概念,也就是說同一條 HTTP連接,可以依次處理多個請求。據說目前大多數瀏覽器都支持這個。想想也有道理,建立一個http連接,消耗的成本是很高的,類似數據庫連接,所以我們都盡量在一個數據庫連接里完成所有的操作,正如你到超市里買東西,不可能去一趟只買一樣,不然的話,買齊所有東西天都黑了。

不過,即使有持久連接的概念,還是有點疑惑:同一張頁面真的只用一個連接嗎?假如有些東西特別大,比如圖片,其他元素等不及了怎么辦?會不會另外開辟一個連接?http超時時間如果都設20分鐘,未免太浪費了吧?

另外,就算同一張頁面只用一個連接,將css、js、圖片合并,也有意義。因為數量少了,發送的請求也少了,這個對性能應該也有影響。

附錄1:

一個典型的網頁,是由一個 html 文件和內嵌的各類元素組成的,這些元素包括頁面內的圖片,css文件,javascript 文件等等。每一個內嵌的元素在 HTTP 協議的層面上和那個 html文件是沒有區別的:也就是都需要瀏覽器去服務器上抓下來。一個早期典型的瀏覽器是這樣實現的:當用戶敲入網址之后,瀏覽器和服務器建立連接,請求 這個html 頁面,然后邊接收服務器發送的 html頁面,邊解析,碰到內嵌元素,可以立即開第二條連接請求。另外,如果內嵌元素很多,他可能會開多條連接同時請求。當所有需要的元素都下載完畢之 后,瀏覽器就會將頁面畫出來。這個過程就是最早期的 HTTP/1.0 協議所設想的瀏覽器實現。

HTTP/1.0 這種多連接的運作模式是可以改進的。建立 TCP連接的過程是這樣:客戶端給服務器發一個網絡包說我要和你建立連接,服務器收到之后回一個網絡包說“我愿意”,然后客戶端要再發給服務器一個網絡包 說“好那咱們開始傳數據吧”。這一來一去三個包才能建立 TCP連接。連接建立之后,瀏覽器給服務器發請求,服務器給瀏覽器回應。完事之后又要來回幾個網絡包關閉 TCP連接。如果頁面有很多文件長度很短的元素,每個元素都需要單建一條連接就會導致網絡上大量的都是 TCP 建立連接和斷開連接的網絡包。另外,TCP有一個特性叫做 slow start,其含義可以大致這樣解釋:TCP連接要求發送端發送一定數量的網絡包之后接收端就要回一個“我收到”的網絡包,而且網絡包在經過每個路由器的 時候包頭都要被重寫,所以在網絡不丟包的情況下網絡包越大網絡的效率就越高。TCP 連接尋找最優網絡包大小的方法是,在 TCP連接建立的初期,網絡包的大小是很小的,根據網絡狀況,兩端的程序才會逐步增大網絡包的大小以適應帶寬提高網絡傳輸的效率。所以瀏覽器給服務器發請 求,如果每發一個請求就關閉連接的話,那這個連接的數據傳輸很難達到帶寬所能承載的速度。

基于這種種原 因,HTTP/1.1 很快出來了,提出了持久連接(persistentconnection)的概念,也就是說同一條 HTTP連接,可以依次處理多個請求,同時用一定的機制保證各個請求之間的分離性。具體的操作過程是:服務器給瀏覽器發送回應之后,并不馬上關閉連接;瀏 覽器判斷上一個請求的回應已經收完的情況下,可以在這同一個連接上發第二個請求。這種運作模式大大減少了網絡包,實驗也表明這種做法很有效。但是,由于服 務器上保持連接要占用一定的資源,所以一般服務器不會永久保持持久連接,而且也不推薦瀏覽器和服務器之間建立過多的持久連接。

持 久連接可以進一步提速。這就是 pipelining了。上面可以看到,瀏覽器需要等待持久連接里上一個請求的回應完全收完才能發送后面的請求。如果和服務器的連接比較慢,往往持久連接 大部分時間都花在等待而非數據發送/接收上。pipelining的意思是,瀏覽器可以在一個持久連接里一次給服務器發送多個請求,服務器在這個連接上依 次回應這些請求。這種運作方式和瀏覽器緩存結合起來的時候會尤其有效果。比方,圖片瀏覽過后會存在瀏覽器緩存中,再次請求的時候瀏覽器會對服務器說,我這 里已經有這個圖片的緩存了,修改時間是XXXX,如果服務器上這個圖片在這之后沒有修改過,就不用重發了。這種情況下,服務器會發一個很短的 304 Not Modified 類型的回應。如果沒有pipelining,每次這樣問一下都要等待網絡上傳輸打一個來回;而如果有 pipelining,瀏覽器可以同時問服務器我這里 4個圖片是否有修改,如果服務器對 pipelining 支持的好,它甚至可以將四個回應放到同一個網絡包里面傳回來,這是一個大大的加速。

pipelining 最早提出的時候還有一種設想的用法是,如果服務器對 pipelining 支持的好,可以把同一個 pipeline 里面的兩個請求放到兩個 CPU 上去處理,這樣能進一步加快響應速度。當然這個可能也沒什么用。

附錄2:

引言

HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統。它于1990年提出,經過幾年的使用與發展, 得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規范化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經提出。

HTTP協議的主要特點可概括如下:

1.支持客戶/服務器模式。

2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。

5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

一、HTTP協議詳解之URL篇

http(超文本傳輸協議)是一個基于請求與響應模式的、無狀態的、應用層的協議,常基于TCP的連接方式,HTTP1.1版本中給出一種持續連接的機制,絕大多數的Web開發,都是構建在HTTP協議之上的Web應用。

HTTP URL (URL是一種特殊類型的URI,包含了用于查找某個資源的足夠的信息)的格式如下:

http://host[":"port][abs_path]

http表示要通過HTTP協議來定位網絡資源;host表示合法的Internet主機域名或者IP地址;port指定一個端口號,為空則使用 缺省端口80;abs_path指定請求資源的URI;如果URL中沒有給出abs_path,那么當它作為請求URI時,必須以“/”的形式給出,通常 這個工作瀏覽器自動幫我們完成。

文章名稱:網站建設中關于并發連接數的解釋
URL網址:http://m.newbst.com/news23/277423.html

成都網站建設公司_創新互聯,為您提供虛擬主機網站建設服務器托管App開發網站設計公司Google

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作