HTTP协议无状态,到底要怎么理解?入门基础知识_协议小白指南

一,故事一天,你有个需求,你要去超市买一瓶酱油。到了超市买了酱油,你告诉售货员,下次给我准备下面粉,我下次来拿。第二次,你去超市拿面粉,售货员说他不记得你什么时候说要准备面粉。这次你学聪明了,售货员给你写了个纸条,上面有超市的章印,下次你带着纸条来,买上了超市给你准备的面粉二,无状态协议1,http超文本传输协议:Hyper Text Transfer Pr

HTTP协议无状态,到底要怎么理解?入门基础知识

一,故事

一天,你有个需求,你要去超市买一瓶酱油。

HTTP协议无状态,到底要怎么理解?入门基础知识_协议小白指南

到了超市买了酱油,你告诉售货员,下次给我准备下面粉,我下次来拿。

第二次,你去超市拿面粉,售货员说他不记得你什么时候说要准备面粉。

这次你学聪明了,售货员给你写了个纸条,上面有超市的章印,下次你带着纸条来,买上了超市给你准备的面粉

二,无状态协议

1,http超文本传输协议:Hyper Text Transfer Protocol

2,http不会为了下次连接所需要的信息而维护这次连接

3,就像你去超市买酱油,买完就结束了,它不会记录你告诉他的信息,不会记录你下次还要买面粉,下次他也不知道你曾经来过

4,顾名思义无状态是指,当浏览器发送请求给server的时候,server响应,可是同一个浏览器再发送请求给server的时候,他会响应,可是他不知道你就是刚才那个浏览器,简单地说,就是server不会去记得你,所以是无状态协议。而DNS是有状态协议 。

5,再举个例子,像购物车,你买东西加入购物车,如果http协议的话,刷新页面,购物车就为空了。

三,cookie和session

1,在这样的client与server进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是须要承前启后的,简单的购物车程序也要知道用户究竟在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而还有一个则是Session。

2,Cookie是通过client保持状态的解决方式。从定义上来说,Cookie就是由server发给client的特殊信息,而这些信息以文本文件的方式存放在client,然后client每次向server发送请求的时候都会带上这些特殊的信息。让我们说得更详细一些:当用户使用浏览器訪问一个支持Cookie的站点的时候,用户会提供包含username在内的个人信息而且提交至server;接着,server在向client回传对应的超文本的同一时候也会发回这些个人信息,当然这些信息并非存放在HTTP响应体(Response Body)中的,而是存放于HTTP响应头(Response Header);

简单来说,cookie保存在客户端,类似你去超市,售货员给你一个纸条,你拿着纸条走了,下次来带着纸条来

3, 与Cookie相对的一个解决方式是Session,它是通过server来保持状态的。因为Session这个词汇包括的语义非常多,因此须要在这里明白一下Session的含义。首先,我们通常都会把Session翻译成会话,因此我们能够把client浏览器与server之间一系列交互的动作称为一个Session。从这个语义出发,我们会提到Session持续的时间,会提到在Session过程中进行了什么操作等等;其次,Session指的是server端为client所开辟的存储空间,在当中保存的信息就是用于保持状态。从这个语义出发,我们则会提到往Session中存放什么内容,怎样依据键值从Session中获取匹配的内容等。

简单来说,session保存在服务端,类似你去超市,售货员在自己纸条上记录张三下次买什么,下次你来告诉他你叫张三就行了。

海计划公众号
(0)
上一篇 2020/03/29 01:40
下一篇 2020/03/29 01:40

您可能感兴趣的内容