精华内容
下载资源
问答
  • 作者:曾著链接:...首先,要定义一下什么叫【无状态】。 假设用户A向服务B发了一个请求1,再次发送一个请求2。 服务端本身完全不知道两个请求来自同一个用户,这在协议层次就是【无状态】的。 ...

     

    作者:曾著
    链接:https://www.zhihu.com/question/265610863/answer/300533939
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    首先,要定义一下什么叫【无状态】。 假设用户A向服务B发了一个请求1,再次发送一个请求2。 服务端本身完全不知道两个请求来自同一个用户,这在协议层次就是【无状态】的。

    【无状态】设计不是因为

    所说的历史原因,而是故意为之。无状态就意味着服务端可以根据需要将请求分发到集群的任何一个节点,对缓存、负载均衡有明显的好处,这一点很容易找到相关文献。

     

    很多人对【无状态】感到不理解,大部分情况是误解了【无状态】的含义。http【无状态】仅仅是在*协议层*,当业务需要状态的时候,可以通过request中数据携带所需状态的id来实现。例如,为了让服务器知道是同一个用户的请求,请求1和请求2中必须携带一个相同的id,让服务端可以根据这个id,最终找到用户数据(【状态】)。

    实现1:这个状态如果放在处理请求的服务器进程中(例如session),那服务器进程就是有状态的,该用户下一个请求如果没分发到这个进程,就会拿不到上一次请求留下的状态,这样会影响负载均衡和缓存的实现。

    实现2:这个状态如果放在处理请求的服务器进程之外的集中式存储,那服务器进程仍然是无状态的,可以集群、负载均衡。无状态服务一般都用这种方案。

     

    最后我的观点是:无状态和有状态服务适合不同的场景,并没有绝对的优劣。

    转载于:https://www.cnblogs.com/yfish/p/8481380.html

    展开全文
  • 连接 连接的含义:是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 Keep-Alive 功能(长连接):使客户端到服务器端的连接持续有效...

    无连接

    无连接的含义:是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    Keep-Alive 功能(长连接):使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive 功能避免了建立或者重新建立连接。但是,对于负担较重的网站来说,这里存在另外一个问题:虽然为客户保留打开的连接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。

    • 这样一来,客户端和服务器之间的 HTTP 连接就会被保持,不会断开(超过 Keep-Alive规定的时间,意外断电等情况除外),当客户端发送另外一个请求时,就会复用这条已经建立的连接。

    无状态

    无状态是指:协议对于事务处理没有记忆能力。即我们给服务器发送 HTTP 请求之后,服务器会给我们响应数据过来。但是,响应完结束后,服务器不会记得刚才请求了什么,还有响应过什么。

    缺点:缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快,简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。

    HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。

    HTTP 无状态的特性严重阻碍了某些交互的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持 HTTP 状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。


    Cookie——Cookie数据放在浏览器中。通过浏览器来保持状态的。

    Cookie:可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

    Cookies 最典型的应用是:判定注册用户是否已经登录网站(进而达到下一次登陆时,免去重新输入登陆的操作),用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是 Cookies 的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookies,以便在最后付款时提取信息。

    Cookies的应用原理:就是,服务器为客户创建一个唯一识别码,并以此为索引在服务器的后端数据库中产生一个项目,就这在给客户的响应报文中添加一个叫做Set-cookie的首部行,将这个唯一识别码发送给客户,客户收到响应后,浏览器会在他管理的cookie文件中添加一行关于这个的信息,这样当客户继续访问此网站时,浏览器就会从cookie文件中取出这个网站的识别码,并放到http请求报文的cookie首部行中,这样这个网站就可以跟踪用户在该网站的活动了。

    应用:免登陆操作、、、购物车功能。


    Session——数据存在服务器当中,通过服务器来保持状态的

    • 当客户端访问服务器时,服务器根据需求设置 Session,将会话信息保存在服务器上,同时将标示 Session 的 SessionId 作为cookie信息 响应给客户端浏览器浏览器将这个 name为sessionId的Cookie保存在客户端的内存中。浏览器关闭后,浏览器占用内存释放,这个内存中的Cookie信息就会 就会被清掉,它不会跟普通的Cookie一样存 在于用户的 Cookie 临时文件中。

    • 浏览器没有关闭期间,以后浏览器每次请求都会额外加上这个参数值,服务器会根据这个 SessionId,就能取得保存了客户状态的数据信息。

    • 如果客户端浏览器意外关闭,服务器保存的 Session 数据不是立即释放,此时数据还会存在,只要我们知道那个 SessionId,就可以继续通过请求获得此 Session 的信息,因为此时后台的 Session 还存在。当然我们可以设置一个 Session 超时时间,一旦超过规定时间没有客户端请求时,服务器就会清除对应 SessionId 的 Session 信息。

    展开全文
  • 对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共 享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的 服务被称为有状态服务,反之称为无状态服务。 那么这个无状态...

            对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共
    享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的
    服务被称为有状态服务,反之称为无状态服务。
    那么这个无状态服务原则并不是说在微服务架构里就不允许存在状态,表达
    的真实意思是要把有状态的业务服务改变为无状态的计算类服务,那么状态数据
    也就相应的迁移到对应的“有状态数据服务”中。
    场景说明:例如我们以前在本地内存中建立的数据缓存、Session 缓存,到
    现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变
    成一个无状态的计算节点。迁移后,就可以做到按需动态伸缩,微服务应用在运
    行时动态增删节点,就不再需要考虑缓存数据如何同步的问题。

     最后简单来说,就是:把数据模块单独提取, 只考虑业务拓展,不考虑数据

    展开全文
  • http无状态

    2018-09-18 14:29:00
    http无状态什么意思 会话机制: 浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续第二次和第三次请求中带上会话id,服务器取得请求中的...

    http无状态是什么意思

    会话机制:

    浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续第二次和第三次请求中带上会话id,服务器取得请求中的会话id就知道是不是同一个用户了
    

      

    服务器在内存中保存会话对象,浏览器怎么保存会话id呢?你可能会想到两种方式

    1. 请求参数

    2. cookie

    将会话id作为每一个请求的参数,服务器接收请求自然能解析参数获得会话id,并借此判断是否来自同一会话,很明显,这种方式不靠谱。那就浏览器自己来维护这个会话id吧,每次发送http请求时浏览器自动发送会话id,cookie机制正好用来做这件事。cookie是浏览器用来存储少量数据的一种机制,数据以”key/value“形式存储,浏览器发送http请求时自动附带cookie信息

    转载于:https://www.cnblogs.com/ZkbFighting/p/9668711.html

    展开全文
  • 后来想想那“404 Not Found”是什么意思,难道说http协议是有状态的?百度百科说:HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。不过我还是不明白哇。 百度百科中说:HTTP本身是...
  • 在查找session和cookie...后来想想那“404 Not Found”是什么意思,难道说http协议是有状态的?百度百科说:HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。不过我还是不明白哇。 ...
  • 状态码分为1-5开头的CODE,以下依次说明: 1** 类状态码称之为Information 状态吗,表示信息正在处理。 2** 类状态码称为为Success状态码,表示请求正常完成。...404:服务器上此资源 5**类状态吗称为Server Error状态
  • 无状态意思就是:每一次请求都是独立的;每一次请求不会受到前面请求的影响,也不会影响后面的请求; 比如我们登录一个系统的时候,验证用户名密码之后,打开系统各个页面的时候就不需要再进行登录操作了,直到...
  • 无状态bean能够实现很多业务操作,可是每一个方法都不能假定不论什么其它的方法会在它之前调用。后半句的意思是如今的你可能不是刚才的你。明天的你可也能不是今天的你,这个时候你就叫做“无状态你”。上面的阐述听...
  • JWT(无状态token)的应用

    千次阅读 2018-04-20 11:15:14
    集成与应用问题JWT使用起来超级简单方便对不对,但它对于整体应用存在一个设计缺陷,那就是服务端无法主动失效token,什么意思呢?就是如果我再次登录(可能是别的客户端)获取到新的token,之前的token是不失效(两...
  • 作者l会点代码的大叔(CodeDaShu)在讲Token之前,先简单说说什么是 Session 和 Cookie。首先要知道 HTTP 请求是无状态的;无状态意思就是:每一次请求都...
  • 作者:会点代码的大叔 在讲Token之前,先简单说说什么...无状态意思就是:每一次请求都是独立的;每一次请求不会受到前面请求的影响,也不会影响后面的请求; 比如我们登录一个系统的时候,验证用户名密码之后...
  • /* 定时器 0 中断服务用来产生 1 秒时钟定时及闹钟蜂鸣器蜂鸣脉冲 */ TL0=6; /* 定时器 1 中断服务留给秒表使用,产生 1/100 秒定时 */ TH1=6; TL1=6; ET0=1; ...
  • 因为想开图形化界面,所以这里选了Gnome ...如果选择交互式shell那个选项依旧是叉,连接不上,阿里云后台查看ssh服务状态异常 ![图片说明](https://img-ask.csdn.net/upload/202004/08/1586315587_720516.png)
  • Jsp状态管理-cookie

    2019-09-26 01:17:42
     浏览器再次发生请求,服务器不能识别是原来那个浏览器,服务器不会去记,就是无状态协议(这还是个协议?意思是记得的话反倒不好?所以要有这个协议?可为什么又需要session、cookie让服务器记得?) Cookie ...
  • 具体每种状态什么意思,其实无需多说,看看下面这种图就明白了,注意这里提到的服务器应该是业务请求接受处理的一方:这么多状态不用都记住,只要了解到我上面提到的最常见的三种状态的意义就...
  • 有关http状态码的疑问

    2010-08-10 16:33:45
    HTTP协议状态码表示的意思  1×× 保留  2×× 表示请求成功地接收  3×× 为完成请求客户需进一步细化请求  4×× 客户错误  5×× 服务器错误 1xx-信息提示 这些状态代码表示临时的响应。...
  • restful是什么

    2021-01-03 23:35:55
    中文意思:表述性状态转移, 本质:是一种软件架构风格 , 核心:面向资源, 解决的问题: 1.降低开发的复杂性 2.提高系统的可伸缩性, RESTful架构优点: 1. 前后端分离,减少流量 2. 安全问题集中在接口上,由于...
  • 什么是DDoS***

    2008-09-02 12:07:58
    DDoS***是什么意思? DDoS也就是分布式拒绝服务***。它使用与普通的拒绝服务***同样的方法,但是发起***的源是多个。通常***者使用下载的工具***保护的主机,当获得该主机的适当的访问权限后,***者在主机中安装...
  • DELL Edge R710/720/730 戴尔服务器Server2003/2008/2012操作系统无法启动,正确检查方案(及服务器Foreign View是什么意思) 1.首先查看硬盘指示灯闪烁状态,如果是绿灯,且有闪烁情况,则基本表明硬盘未损坏,然后...
  • 文章目录企业CDN缓存系统 -varnish(一)1.什么是varnishHTTP协议相关知识 企业CDN缓存系统 -varnish(一) 1.什么是varnish ...可以使用==cache(缓冲)==来解决无状态的问题,varnish才可以作为http的加速器。 ...
  • 大家好,我是电商火火。 货源模式诞生于淘宝,后发展于拼多多等电商平台, 巅峰是在京东,后没落,...不论是传统模式还是货源模式,商家们依靠信息差,进行低买高卖赚取服务费。 不同的是,传统模式的商家必须要有
  • 游戏系统设计

    2016-05-26 10:41:00
    对于无状态服务, 首先说一下什么是状态, 如果一个数据需要被多个服务共享,才能完成一笔交易, 那么这个数据被称为状态, 进而依赖这个“状态”数据的服务被称为有状态服务, 反之称为无状态服务。真实意思,就是...
  • Linux 之 IP协议详解

    千次阅读 2016-10-28 19:09:52
    IP协议的无状态什么意思? IP协议的无连接是什么意思? IP协议的不可靠是什么意思? 那么IP协议在整个TCP/IP协议族中的作用是什么呢? IPV4头部结构IPv4头部结构可变长的选项部分,最多包含40个字节,可选的IP...
  • 3.1.1小米商城平台上的产品和服务由小米科技有限责任公司或其关联公司或第三方商家经营。第三方商家商品的经营主体以页面公示的商家信息为准。为方便表述,商品及服务的经营主体以下统称为“销售商”。对于...
  • 大家都知道,HTTP协议是无状态的,无状态意思?举个栗子 夏洛:大爷,楼上322住的是马冬梅家吧? 大爷:马都什么? 夏洛:马冬梅。 大爷:什么都没啊? 夏洛:马冬梅啊。 大爷:马什么没? 夏洛:行,大爷你先...
  • 1、HTTP 协议是无状态的 是什么意思? HTTP 对于 客户端发送请求、服务器端响应请求的过程,是没有记忆的,下一次客户端再发送请求,服务器是不会识别出这是之前连接过的客户端。 HTTP 协议的无状态性 : 不对 请求...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 149
精华内容 59
关键字:

服务无状态什么意思