HTTP协议的状态

无状态的HTTP协议

HTTP是一种无状态的协议。也就是说,HTTP协议不对请求和响应之间的通信状态进行保存。它对自己发过哪些请求,有哪些响应,都不能持久化处理。

使用HTTP协议时,每当有新请求发送时,就会有对应的新响应产生。并不会保存之前的请求或响应报文。

为什么会设计成无状态

在使用HTTP协议时,只要新的请求,就会产生对应的新响应。并不保存状态。这种设计方法,是为了更快地处理大量的事务,确保协议的可以伸缩性。

任何一件事情,都具有两性,有利就有弊。无状态虽然解决了快速处理事务的问题,但是没有状态,我们当前使用的网站,基本上是无法正常使用的。那么是通过什么技术手段,解决这个问题的呢?

如何保存状态

随着WEB不断发展、业务场景的多样化,因无状态而导致业务处理变得棘手的情况越来越多。例如,很多涉及到登录的网站,当你在登录页面登录完成后,去其他页面后,需要继续保持这个登录状态。网站为了能够掌握是谁发送的请求,需要保存用户的状态。

为了实现这个愿望,于是两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。

Cookie是通过客户端保持状态的解决方案。Session是通过服务器来保持状态的。

有了Cookie和Session再用HTTP协议通信,就可以管理状态了。有关Cookie和Session的详细内容,以后再做详细介绍。

小结

无状态协议优势和缺点;如何解决无状态带来的问题。

最后

这是我的HTTP协议学习笔记,会以连载的形式,第一时间发布在这个公众号。作为测试和开发的基础知识,我们只有基础打稳了,才能让测试之路走的更远,让测试工作更加有深度。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180701G0T9TP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券