一、http连接的常见流程
浏览器解析出主机名 浏览器查询这个主机名的IP地址(DNS) 浏览器获得服务端端口 浏览器发起请求到到服务器 浏览器向服务器发送一条HTTP GET报文 浏览器从服务器读取HTTP响应报文 浏览器关闭连接
二、从TCP编程看HTTP请求处理过程
1.服务端:创建套接字(socket);将套接字绑定到端口上(bind);允许套接字进行连接(listen);等待连接(accept) 2.客户端:获取服务端ip地址和端口号;创建套接字(socket);连接到服务器ip:port上(connect) 3.服务端:通知应用程序有连接进来;开始读取请求(read) 4.客户端:连接成功;发送HTTP请求(write);等待HTTP响应(read) 5.服务端:处理HTTP请求报文;回送HTTP响应(write);关闭连接(close) 6.客户端:处理HTTP响应;关闭连接(close)
3、短连接和长连接
短链接:处理请求1,响应1,关闭;处理请求2,响应2,关闭;... 长连接:客户端和服务端连接长连接后,就可以出来第一个请求、第二个请求..最后关闭。 长连接由connection头部支持的,
4、connection仅针对当前连接有效
代理服务器认得长连接(有长连接功能),但是没有开的情况下,可以将长连接传到上游服务器