HTTP协议的状态

Posted 测试开发之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议的状态相关的知识,希望对你有一定的参考价值。

无状态的HTTP协议


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

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

为什么会设计成无状态


在使用HTTP协议时,只要新的请求,就会产生对应的新响应。并不保存状态。这种设计方法,是为了更快地处理大量的事务,确保协议的可以伸缩性。
任何一件事情,都具有两性,有利就有弊。无状态虽然解决了快速处理事务的问题,但是没有状态,我们当前使用的网站,基本上是无法正常使用的。那么是通过什么技术手段,解决这个问题的呢?

如何保存状态


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

为了实现这个愿望,于是两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。
Cookie是通过客户端保持状态的解决方案。Session是通过服务器来保持状态的。

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

小结



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


最后



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

以上是关于HTTP协议的状态的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议

Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码

HTTP/2 是无状态协议吗?

什么是HTTP协议响应流

http协议面试题

HTTP协议及常见状态码