HTTP无状态和connection:keep-alive的个人
2018-12-20 本文已影响0人
747大雄
http是一个无状态的面向连接的协议。
http无状态:无状态协议是指http协议本身对于事务处理没有记忆功能,服务器不知道浏览器的状态。通俗的即使你登录了,去访问同一个网站的不同网页,服务器都不会知道你是谁,如果需要记录登录用户的信息,用户操作,用户行为等数据需要使用cookie或session来存储。
keep-alive:从HTTP/1.1起,浏览器默认都开启了Keep-Alive,保持连接特性,客户端和服务器都能选择随时关闭连接,则请求头中为connection:close。简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的TCP连接。但是Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
误解:无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。即使http在无状态下,只要客户端和服务器的头部信息connection:keep-alive,则在有效期内他们使用同一条TCP连接。