为什么HTTP协议是无状态的

参考答案

1.  HTTP协议是无状态的

  • HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态,协议对于事务处理没有记忆功能。
  • 也就是说,上一次的请求对这次的请求没有任何影响,服务端也不会对客户端上一次的请求进行任何记录处理。

2.  为什么HTTP协议是无状态的

  • 因为它的每个请求都是完全独立的,每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及到状态变更。
  • 即使在HTTP/1.1上,同一个连接允许传输多个HTTP请求的情况下,如果第一个请求出错了,后面的请求一般也能够继续处理(当然,如果导致协议解析失败、消息分片错误之类的自然是要除外的)。
  • 可见,这种协议的结构要比有状态的协议更简单,实现也更简单,不需要使用状态机,一个循环就行了。

3.  HTTP协议无状态的影响

  • 用户登录后,切换到其他界面进行操作,服务器端是无法判断是哪个用户登录的。
  • 每次进行页面跳转的时候,需要重新登录。
  • 如果后面的处理,需要前面的信息,则前面的信息必须重传,可能导致每次连接传送的数据量增大。
  • 在服务器不需要前面信息时,应答较快。直观地说,就是每个请求都是独立的,与前面的请求和后面的请求都没有直接联系。

4.  实现HTTP协议有状态的方法

 

以上,是Java面试题【HTTP协议为什么是无状态的】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧