文章目录
  1. 1. Defined
  2. 2. Main()
    1. 2.1. 连接状态
  3. 3. 无状态
  4. 4. Refer

Defined

从状态码那边了解过来, 然后看到的性质问题.

Main()

HTTP协议有两个性质: 无状态;无连接

连接状态

  1. HTTP/1.0 之前都是短连接, 因为基本内容不相关,服务器响应完客户端就断开了和客户端的连接(关系);
  2. 后来现代网页中存在较多静态资源之后,HTTP/1.0出现了conncetion: Keep-Alive来保证服务器一直响应客户端的连续请求, 比如图片,css,js等.keep-alive默认存在一个timeout=5(second),max=100(request)的参数来限制无限制连接的情况, 通过发送Connection: Close来对客户端表示连接中断;
  3. HTTP/1.1之后就默认是长连接了, 即只要表示http协议即可维持长连接状态.但是出现了HOLB(Head of Line Blocking)问题,即串行的请求模式会导致网络阻塞.然后1.1又提出了一个pipelining异步模式, 客户端不需要等待服务器响应就能对其他资源进行请求,不过为了保证响应和请求匹配最后依然还是串行输出,即该模式被淘汰.
  4. SPDY|HTTP/2.0出现了一个multiplexing多路复用模式,解决了串行接受问题(可以乱序发送/接受并完成请求)

无状态

可以这么理解: 无状态 == 无记忆
然后保证记忆存在的方式: 客户端的cookie/服务端的session;
遇到session就说一下这个问题吧, 一般的登陆(比如php)会在登陆之后的客户端(浏览器)存一个SESSION_ID,服务端会存一个SESSION, 在session有效期内重新进入页面,服务端会判断cookie中的session_id和自己存的session能否校验成功,如果成功就允许访问.

Refer

连接状态-知乎@二大王

文章目录
  1. 1. Defined
  2. 2. Main()
    1. 2.1. 连接状态
  3. 3. 无状态
  4. 4. Refer