2011-08-11 15 views
19

據「HTTP:權威指南」,利用爲什麼連接:仍在HTTP頭中指定保持活動狀態(是不是棄用)?

Connection: keep-alive 

指定的持久連接已被棄用在HTTP/1.1中,由於HTTP/1.1指定連接是通過默認持久性,並且必須通過發送手動關閉

Connection: close 


因此,我簡單的假設是,「連接:保持活動」實在不應該再使用。但是,它仍然看起來很活躍。例如,保持活動正返回在下面的查詢:

curl -I https://foursquare.com 

HTTP/1.1 200 OK 
Server: nginx/0.8.52 
Date: Thu, 11 Aug 2011 21:15:45 GMT 
Content-Type: text/html; charset=utf-8 
Connection: keep-alive 
Expires: Thu, 11 Aug 2011 21:15:45 UTC 
Set-Cookie: XSESSIONID=w19~kqtn4bpqmfq51p8qolstpk6ti;Path=/;Secure;HttpOnly 
Set-Cookie: LOCATION=49.25::-123.13330078125::Hockeytown::CA;Path=/;Secure 
Set-Cookie: bbhive=OQ32XATE0OQAEVCY0IVSWUDPQ1A2GT 
Content-Length: 38815 
Cache-Control: no-cache, private, no-store 
Pragma: no-cache 

我的問題是:爲什麼連接:保持活動仍然在HTTP標頭中指定?

一個必然的問題是:還有(客戶端,服務器,代理等)仍然只能說HTTP/1.0及其變體,或者是截至2011年的大多數HTTP/1.1實體嗎?

這裏是我的工作假設:

1)HTTP/1.0是不再使用,B/C,這是 「多年的」 前文(1),保活

2) 不應再使用,但純粹是爲了殘留的原因(也就是,某些技術還沒有費心去刪除它,或圍繞保持它作爲巫術代碼等)

如果(1)是不正確的,並且HTTP/1.0仍在使用中,那麼確定它似乎是合理的儘管有關於HTTP 1.0-1.1 interop的後續問題,請繼續使用keep-alive。

在此先感謝您分享的任何見解!

+1

這是一個不正確的假設:「HTTP/1.0是不再使用」世界上有相當數量的垃圾HTTP/1.0的代理服務器。但是,是的,我相信這主要是因爲它是巫術。 – EricLaw

+0

謝謝。其實我只是找到你的相關答案:http://stackoverflow.com/questions/6257470/are-there-any-use-to-limit-yourself-to-http1-0/6257911#6257911隨時升級你的評論到一個完整的答案! – capdigi

回答

14

HTTP/1.0沒有像Connection這樣的頭文件,但有很多不同的HTTP/1.0和HTTP/1.1實現。

所以Connection: keep-alive用於「萬一

相關問題