久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

了解HTTP Keep

 liang1234_ 2019-05-15

HTTP Keep-Alive 很大程序上被誤解了,,下面介紹一下它在HTTP/1.0和HTTP/1.1版本下是如何工作的。

Keep-Alive是HTTP協(xié)議中非常重要的一個屬性,。大家知道HTTP構(gòu)建在TCP之上,。在HTTP早期實現(xiàn)中,每個HTTP請求都要打開一個socket連接,。這種做效率很低,,因為一個Web 頁面中的很多HTTP請求都指向同一個服務(wù)器。例如,,很多為Web頁面中的圖片發(fā)起的請求都指向一個通用的圖片服務(wù)器,。持久連接的引入解決了多對已請求服務(wù)器導(dǎo)致的socket連接低效性的問題。它使瀏覽器可以再一個單獨(dú)的連接上進(jìn)行多個請求,。瀏覽器和服務(wù)器使用Connection頭ilai指出對Keep-Alive的支持,。

HTTP是一個請求<->響應(yīng)模式的典型范例,即客戶端向服務(wù)器發(fā)送一個請求信息,,服務(wù)器來響應(yīng)這個信息,。在老的HTTP版本中,每個請求都將被創(chuàng)建一個新的客戶端->服務(wù)器的連接,,在這個連接上發(fā)送請求,,然后接收請求。這樣的模式有一個很大的優(yōu)點(diǎn)就是,,它很簡單,,很容易理解和編程實現(xiàn);它也有一個很大的缺點(diǎn)就是,,它效率很低,,因此Keep-Alive被提出用來解決效率低的問題。

HTTP/1.0

HTTP 1.0中默認(rèn)是關(guān)閉的,,需要在http頭加入"Connection: Keep-Alive",,才能啟用Keep-Alive,;HTTP 1.1中默認(rèn)啟用Keep-Alive,如果加入"Connection: close",,才關(guān)閉,。

在HTTP/1.0版本中,并沒有官方的標(biāo)準(zhǔn)來規(guī)定Keep-Alive如何工作,,因此實際上它是被附加到HTTP/1.0協(xié)議上,,如果客戶端瀏覽器支持Keep-Alive,那么就在HTTP請求頭中添加一個字段 Connection: Keep-Alive,,當(dāng)服務(wù)器收到附帶有Connection: Keep-Alive的請求時,,它也會在響應(yīng)頭中添加一個同樣的字段來使用Keep-Alive。這樣一來,,客戶端和服務(wù)器之間的HTTP連接就會被保持,,不會斷開(超過Keep-Alive規(guī)定的時間,意外斷電等情況除外),,當(dāng)客戶端發(fā)送另外一個請求時,,就使用這條已經(jīng)建立的連接。

HTTP/1.1

目前大部分瀏覽器都是用HTTP 1.1協(xié)議,,也就是說默認(rèn)會啟用Keep-Alive的連接請求,。列舉以下瀏覽器的并發(fā)數(shù)作參考:IE6,7在HTTP/1.0中默認(rèn)最大并發(fā)連接數(shù)為4,在HTTP/1.1中默認(rèn)最大并發(fā)連接數(shù)為2,,IE8都為6,,F(xiàn)irefox2在HTTP/1.0中默認(rèn)最大并發(fā)連接數(shù)為2 在HTTP/1.1中默認(rèn)最大并發(fā)連接數(shù)為8,firefox 3默認(rèn)都是6,。

在HTTP/1.1版本中,,官方規(guī)定的Keep-Alive使用標(biāo)準(zhǔn)和在HTTP/1.0版本中有些不同,默認(rèn)情況下所在HTTP1.1中所有連接都被保持,,除非在請求頭或響應(yīng)頭中指明要關(guān)閉:Connection: Close ,,這也就是為什么Connection: Keep-Alive字段再沒有意義的原因。另外,,還添加了一個新的字段Keep-Alive:,因為這個字段并沒有詳細(xì)描述用來做什么,,可忽略它,。

Not reliable(不可靠)

HTTP是一個無狀態(tài)協(xié)議,這意味著每個請求都是獨(dú)立的,,Keep-Alive沒能改變這個結(jié)果,。另外,Keep-Alive也不能保證客戶端和服務(wù)器之間的連接一定是活躍的,,在HTTP1.1版本中也如此,。唯一能保證的就是當(dāng)連接被關(guān)閉時你能得到一個通知,,所以不應(yīng)該讓程序依賴于Keep-Alive的保持連接特性,否則會有意想不到的后果,。

Keep-Alive和POST

在HTTP1.1細(xì)則中規(guī)定了在一個POST消息體后面不能有任何字符,,還指出了對于某一個特定的瀏覽器可能并不遵循這個標(biāo)準(zhǔn)(比如在POST消息體的后面放置一個CRLF符)。而據(jù)我所知,,大部分瀏覽器在POST消息體后都會自動跟一個CRLF符再發(fā)送,,如何解決這個問題呢?根據(jù)上面的說明在POST請求頭中禁止使用Keep-Alive,,或者由服務(wù)器自動忽略這個CRLF,,大部分服務(wù)器都會自動忽略,但是在未經(jīng)測試之前是不可能知道一個服務(wù)器是否會這樣做,。

一些容易犯的誤區(qū):

  1. HTTP是一個無狀態(tài)的面向連接的協(xié)議,,無狀態(tài)不代表HTTP不能保持TCP連接,更不能代表HTTP使用的是UDP協(xié)議(無連接)
  2. 從HTTP/1.1起,,默認(rèn)都開啟了Keep-Alive,,保持連接特性,簡單地說,,當(dāng)一個網(wǎng)頁打開完成后,,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會關(guān)閉,如果客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,,會繼續(xù)使用這一條已經(jīng)建立的連接
  3. Keep-Alive不會永久保持連接,,它有一個保持時間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個時間

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多