根据"HTTP:The Definitive Guide",使用
Connection: keep-alive
指定持久连接在HTTP/1.1中已弃用,因为HTTP/1.1指定默认情况下连接是持久的,必须通过发送手动关闭
Connection: close
因此,我的简单假设是"连接:保持活着"不应该再被使用了.然而,它仍然看起来还活着.例如,在以下查询中返回keep-alive:
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标头中仍然指定了Connection:keep-alive?
一个必然的问题是:是否还有(客户端,服务器,代理等)仍然只能说HTTP/1.0及其变体,或者在2011年的HTTP/1.1上是大多数此类实体?
以下是我的工作假设:
1)HTTP/1.0不再使用,b/c是"很多年前"
2)鉴于(1),保持活动不应再使用,但是是纯粹为残留的原因(也就是,某些技术还没有费心去删除它,或围绕保持它作为巫术代码等)
如果(1)不正确,并且HTTP/1.0仍在使用中,那么尽管HTTP 1.0-1.1互操作上有后续问题,但仍然可以确定使用keep-alive似乎是合理的.
提前感谢您分享的任何见解!
HTTP/1.0没有类似的标题Connection
,但HTTP/1.0和HTTP/1.1有许多不同的实现.
所以Connection: keep-alive
用' 以防万一 '