httpp 2011-09-20
HTTP1.0
规定浏览器与服务器端只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
不支持HOST请求头字段
HTTP1.1
支持长连接,在一个TCPL连接上可以传送多个HTTP请求和相应,减少建立和关闭连接的消耗和延迟。HTTP1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接受到的客户端请求的先后顺序依次回送相应结果,以保证客户端能够区分每次请求的相应内容,这样也显著减少整个下载过程所需要的时间。
增加HOST请求头字段,WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这样才实现了在一台WEB服务器上在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点
还提供了与身份认证、状态管理、Cache等机制相关的请求头和相应头。
http1.1中keepalive是默认的,除非客户端显式的指定connect头为close
Nginx:
http { keepalive_timeout 65; }
Resin:长连接配置(其他服务器也类似)
<!-- Maximum number of threads. --> <thread-max>4096</thread-max> <!-- Configures the keepalive --> <keepalive-max>1024</keepalive-max> <keepalive-timeout>60s</keepalive-timeout>
<keepalive-max> default 100 <keepalive-timeout> default 10s keepalive-thread-max in resin.conf <resin xmlns="http://caucho.com/ns/resin"> <cluster id="web-tier"> <server-default> <http port="80"/> <thread-max>512</thread-max> <keepalive-max>100</keepalive-max> <keepalive-timeout>10s</keepalive-timeout> </server-default> <server id="web-a" address="192.168.0.10"/> ... </cluster> </resin>