HTTP协议:无状态

Blog:博客园 个人

无状态

HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

可以理解为,浏览器发送请求给服务器时,服务器响应请求;但同一个浏览器再次请求时,服务器不知道这次请求的浏览器是否为上次那个浏览器,也就是服务器没有记忆浏览器的特征。

无状态的状态是啥

举个例子,老王在隔壁开了一家饭店,小明听说后就想尝尝这家饭店的手艺。吃完觉得还不错,决定明天再去。

第二天,小明又去了饭店,结账的时候跟老板说:我昨天来消费过,今天可否给个优惠?

无状态(stateless)

老板答:你昨天来过吗?我没有印象了,抱歉不能给你优惠。

有状态(Stateful)

为了更好地吸引老顾客,维护好客源,老板决定把每个顾客记录下来。

老板答:奥,稍等让我查一下记录……原来是你啊,行,给你88折,欢迎下次惠顾!

总结

由上可知,这个状态就是客户端的状态。

Cookie和Session

如何保存客户端的状态?实现的方式有两种,分别是Cookie和Session。

Cookie是通过客户端保持状态的解决方案。

从定义上来说,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。

Session

Session是通过服务器来保持状态的。

Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。

客户端第一次访问时,服务器会为这个客户端创建唯一特征码,也就是SessionID,客户端再次请求的时候,服务器会根据SessionID在服务端的数据库中查询,若有这个SessionID,则会做出相应响应。

相关文章

随着云计算和网络技术的发展,越来越多的数据需要在服务器之...
阿里云服务器Tomcat无法从外部访问一、环境阿里云Ubuntu 12....
购买一系列的东西其实就是花钱买块区域,服务器,域名,云解...
前言昨天买了域名,服务器,然后搭建了环境,然后想他通过默...
前言由于服务器centos6.8安装mysql一直出现不能连接问题,然后...
前言用 SSH客户端登录上以后,自己想要在本地连接服务器上的...