HTTP协议无状态,到底要怎么理解?

更新日期: 2019-07-16阅读: 2.4k标签: 协议

一,故事

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

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

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

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


二,无状态协议

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保存在服务端,类似你去超市,售货员在自己纸条上记录张三下次买什么,下次你来告诉他你叫张三就行了。


链接: https://www.fly63.com/article/detial/4213

Web开发HTTP协议知识_常用http方法、http状态码等(前端开发和面试必备))

HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

//缺省协议的讲解,用 //代替 http:// 有什么好处?

//缺省协议的使用,代表资源访问的协议和当前页面保持一致,如果当前页面是http ,采用http协议访问,如果是https,则使用 https 协议访问。这样用就不管是http还是升级到https都不用改动代码,现在很多CDN资源都是这样引用。一般使用在内链中,外链的协议头具有不确定性的原因。

常见的网络协议有哪些?几种常用的网络协议

常用的网络协议有TCP/IP协议、HTTP协议、FTP协议、Telnet协议、FTP协议、SMTP协议、NFS协议、UDP协议等。网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

IPv6特点;IPv6与IPv4共存技术

实践证明IPv4是一个非常成功的协议,它本身也经受住了Internet从数目很少的计算机发展到目前上亿台计算机互联的考验。但该协议是几十年前基于当时的网络规模而设计的。

HTTP与TCP的区别和联系

手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”

HTTP无状态协议理解

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

实现memcached客户端:TCP、连接池、一致性哈希、自定义协议

memcached 本身并不支持集群,为了使用集群,我们可以自己在客户端实现路由分发,将相同的 key 路由到同一台 memcached 上去即可。路由算法有很多,这里我们使用一致性哈希算法。

HTTP 协议的 8 种请求类型介绍

HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下:虽然 HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 和 post

javascript伪协议是什么?

伪协议是为关联应用程序而使用的,JavaScript伪协议实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。

前端不得不了解的TCP协议

早期的网络是基于OSI(开放式系统互联网,一般叫OSI参考模型)模型,该模型是由ISO国际标准组织制定的,包含了七层(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层),即复杂又不实用,以至于招到了许多批评

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!