HTTP的无状态
2019-11-08 22:48
1726 查看
HTTP是无状态的。
好处:
因为服务器没有“记忆能力”,所以就不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。
而且,“无状态”也表示服务器都是相同的,没有“状态”的差异,所以可以很容易地组成集群,让负载均衡把请求转发到任意一台服务器,不会因为状态不一致导致处理出错,使用“堆机器”的“笨办法”轻松实现高并发高可用。
坏处:
既然服务器没有“记忆能力”,它就无法支持需要连续多个步骤的“事务”操作。例如电商购物,首先要登录,然后添加购物车,再下单、结算、支付,这一系列操作都需要知道用户的身份才行,但“无状态”服务器是不知道这些请求是相互关联的。
不过,Cookie 技术可以解决这个问题。
补充:
队头阻塞
请求 - 应答 模式加剧了 HTTP 的性能问题,这就是著名的“队头阻塞”(Head-of-line blocking)。
当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,会导致客户端迟迟收不到数据。
相关文章推荐
- 编写网络爬虫对于状态码的处理----HTTP常用状态码
- 301、404、200、304等HTTP状态
- 常见HTTP状态(304,200等)
- HTTP返回状态值及用途
- HTTP状态代码以及定义(深度好文,赶紧收藏)
- HTTP 状态代码
- JDK6.0学习笔记(十七)用HttpUnit保持状态
- 【备忘录-网络】常见HTTP状态值
- Http协议无状态带来的问题和解决方法
- XMLHTTP.readyState的五种状态
- HTTP 状态代码
- JavaScript学习总结(七)Ajax和Http状态字
- 301、404、200、304等HTTP状态
- HttpClient 4.3详细教程之Http状态管理
- http的无状态无连接到底是什么含义
- http请求的返回状态
- HttpWebResponse请求状态代码
- HTTP应答状态
- http cancelled状态与ajax 超时
- http各个状态返回值