「HTTP:The Definitive Guide」によると、
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
2)(1)を考えると、キープアライブはもう使用すべきではありませんが、は純粋に痕跡的な理由で(つまり、特定のテクノロジーがそれを削除したり、ブードゥーコードとして保持したりすることを気にしなかったなど)
(1)が正しくなく、HTTP/1.0がまだ使用されている場合は、HTTP 1.0-1.1相互運用に関するフォローアップの質問にもかかわらず、キープアライブを使用し続けることがもっともらしいと思われます。
洞察を共有してくれてありがとう!
HTTP /1.0にはConnection
のようなヘッダーはありませんが、HTTP /1.0とHTTP/1.1にはさまざまな実装があります。
そう Connection: keep-alive
が使用されます '念のため'