参考答案
1. HTTP协议是无状态的
- HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态,协议对于事务处理没有记忆功能。
- 也就是说,上一次的请求对这次的请求没有任何影响,服务端也不会对客户端上一次的请求进行任何记录处理。
2. 为什么HTTP协议是无状态的
- 因为它的每个请求都是完全独立的,每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及到状态变更。
- 即使在HTTP/1.1上,同一个连接允许传输多个HTTP请求的情况下,如果第一个请求出错了,后面的请求一般也能够继续处理(当然,如果导致协议解析失败、消息分片错误之类的自然是要除外的)。
- 可见,这种协议的结构要比有状态的协议更简单,实现也更简单,不需要使用状态机,一个循环就行了。
3. HTTP协议无状态的影响
- 用户登录后,切换到其他界面进行操作,服务器端是无法判断是哪个用户登录的。
- 每次进行页面跳转的时候,需要重新登录。
- 如果后面的处理,需要前面的信息,则前面的信息必须重传,可能导致每次连接传送的数据量增大。
- 在服务器不需要前面信息时,应答较快。直观地说,就是每个请求都是独立的,与前面的请求和后面的请求都没有直接联系。
4. 实现HTTP协议有状态的方法
- 前往查看:HTTP协议如何做才能有状态
以上,是Java面试题【HTTP协议为什么是无状态的】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—