@dudu 相信大大是知道的,so先at为敬。
:)
简单介绍下配置环境,
windows server 2008 + IIS 7.0 集成模式 .net framework 4.0
1、关于 Connection:keep-alive,我的服务器是如下配置的。
那么问题来了,添加了之后,Header的response并没有自动添加Connection:keep-alive ,或者显示Connection:close,疑惑ing。(PS,IIS设置连接超时为120s)
2、关于Transfer-Encoding:chunked 分块传输,以及同时使用动态页面压缩
浏览了部分技术分档,大概意思是说,
--原本请求web服务器,服务器响应生成一个页面内容,然后一股脑的传给客户端,当然header是带Content-Length的,因为在服务端生成完毕了,所以肯定知道长度了,所以客户端会有一个等待的小过程。
--如果使用Transfer-Encoding:chunked,就是分块传输,服务器边生成边下载?
--“Content-Length”跟"Transfer-Encoding:chunked"是互斥的。
那么问题来了,IIS怎么处理Transfer-Encoding:chunked ?
手动添加Transfer-Encoding报文头,会报50x错误!
1、在http 1.1规范中,假定客户端都会keep-alive,所以微软觉得IIS没必要再发Connection:keep-alive响应头。如果一定要发这个响应头,可以通过URL Rewrite module实现,详见IIS 7.5: Force Keep Alive header in Response。
2、可以通过下面的命令启用Transfer-Encoding:chunked
appcmd set config /section:asp /enableChunkedEncoding:True
果然是大神