为什么说http协议是无状态协议

摘录自博客 http://blog.sina.com.cn/s/blog_93b45b0f0101a4ix.html

无状态含义:

  无状态是指协议对于事务处理没有记忆功能。缺少状态意味着,假如后面的处理需要前面的信息,则前面的信息必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要前面信息时,应答就较快。直观地说,就是每个请求都是独立的,与前面的请求和后面的请求都是没有直接联系的。

实际中的使用情况:

  在web应用中,我们使用http协议,但是我们需要的web是有状态的,因此加入了cookie、session等机制实现有状态的的web。

  web=http协议+状态机制+其他机制

为什么不改进http协议使之有状态:

  最初的http协议只是用来浏览静态文件的,无状态协议已经足够,这样实现的负担也很轻(相对来说,实现有状态的代价是很高的,要维护状态,根据状态来操作。)。随着web的发展,它需要变得有状态,但是不是就要修改http协议使之有状态呢?是不需要的。因为我们经常长时间逗留在某一个网页,然后才进入到另一个网页,如果在这两个页面之间维持状态,代价是很高的。其次,历史让http无状态,但是现在对http提出了新的要求,按照软件领域的通常做法是,保留历史经验,在http协议上再加上一层实现我们的目的(“再加上一层,你可以做任何事”)。所以引入了其他机制来实现这种有状态的连接。

哪些方法可以实现有状态连接:

cookies, session, application

有人将web应用中有无状态的情况,比着顾客逛商店的情景。

顾客:浏览器访问方;

商店:web服务器;

一次购买:一次http访问

我们知道,上一次顾客购买,并不代表顾客下一个小时一定会买(当然也不能代表不会)。也就是说同一个顾客的不同购买之间的关系是不定的。所以说实在的,这种情况下,让商店保存所有的顾客购买的信息,等到下一次购买可以知道这个顾客以前购买的内容代价非常大的。所以商店为了避免这个代价,索性就认为每次的购买都是一次独立的新的购买。浅台词:商店不区分对待老顾客和新过客。这就是无状态的。

但是,商店为了提高收益。她是想鼓励顾客购买的。所以告诉你,只要你在一个月内购买了5瓶以上的啤酒,就送你一个酒杯。

我们看看这种情况我们怎么去实现呢?

A,给顾客发放一个磁卡,里面放有顾客过去的购买信息。

这样商店就可以知道了。这就是cookie.

B,给顾客发放一个唯一号码,号码制定的顾客的消费信息,存储在商店的服务器中。这就是session

最后,商店可以全局的决定,是5瓶为送酒杯还是6瓶。这就是application

其实,这些机制都是在无状态的传统购买过程中加入了一点东西,使整个过程变得有状态。Web应用就是这样的。

 

转载于:https://www.cnblogs.com/Jadie/p/6877392.html

nsight-system教程 参考nsight-compute使用教程-CSDN博客。 阅读详情

相关推荐

STM32 ST-LINK Utility 无法烧录程序的解决方法

当你打开STM32 ST-LINK Utility,硬件连接好st-link V2,打开了要烧写的文件,点那个Program verify烧录时, 如果出错了: Programming error @ 0x08000000! 我的方法是: 点你想要烧录那个HEX文件的小格,复制 然后去到你前面的文件的格子里,点粘贴: 成功! ...

wocute的博客 9471

什么叫无状态

什么叫无状态   无状态指的是对于请求方的每个请求,接收方都当这次请求是第一次请求。为什么叫做无状态呢?因为对于请求方而言,每次请求时,接收方就像是失忆了一样,并不会依赖请求方以往的请求所生成的数据作回应。也就是,就像是接收方没有保存请求方的状态(数据)一样,所以叫无状态。   无状态并不代表接收方不会保存请求方的任何数据,它只是不保存与接收方可能的下次请求相关的数据。所以无状态要求请求方每次请求时,一次性提供与请求相关的全部数据,而不能因为某些数据在以前的请求中提供了,这次请求就不提供了。那么,接收方为

暗诺星刻的博客 7023

展会客流统计的客流统计系统,WiFi客流每时每客

一般展会的举行时间都在3-7天之间,展会作为市场部门一项重要工作,一直以来没有一项有效的工具能够提供数据支持。 展会最重要的是通过活动和产品来吸引参展者的参观,如何统计展会期间的客流量呢?如何通过将数据转化成为活动数据的支撑呢? 目前成熟的解决方案有,视频客流统计、WiFi客流统计、红外线客流统计等方式。由于展会通常的时间都比较短,视频、红外线客流统计采购及安装价格都比较高,需

isentech的博客 3962

有关“无状态“的理解

一、什么是无状态

sunwenq的专栏 2798

你知道编程中无状态和有状态的区别吗?

举例明 诸位Java程序员,想必大家对SimpleDateFormat并不陌生。不过,你是否知道,SimpleDateFormat不是线程安全的(thread safe)。这意味着,下面的代码是错误的: 从功能的角度上看,单独执行这段代码是没有问题的,但放到多线程环境下,因为SimpleDateFormat不是线程安全的,这段代码就会出错。所以,要想让这段代码正确,我们只要稍做微调: 不知你...

qf2019的博客 2166

怎么理解和设计应用的无状态化?

什么是无状态无状态(statelessness)指的是服务内部变量值的存储。这句话怎么理解?我们可以理解为在我们的服务器内部存储一个变量。 一个请求过来,那么此时带着该变量的就为有状态,或者在客户端存储了该变量,请求过来时,需要重复使用该变量的也是有状态的体现。 那么我们怎么做,可以让我们的应用软件是无状态。那么我们需要将该变量存储在 第三方的一些服务或者中间件上,比如将用户登陆token...

拿来主义的专栏 5919

为什么HTTP协议无状态

无状态指的是任意一个Web请求必须完全与其他请求隔离,当请求端提出请求时,请求本身包含了相应端为相应这一请求所需的全部信息。 无状态 无状态协议是指协议对务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。Http协议不像建立了socket连接的两个终端,双方是可以互相通信的,http的客户端只能通过请求服务器来获取相关内容或文件信息。 http协议这种特性有优点也有缺点,优点在于解放了服务.

weixin_44197906的博客 733

为什么http协议无状态的?

首先了解基本概念:什么是无状态,什么是无连接 无状态协议协议的状态是指下一次传输可以“记住”这次传输信息的能力。 http是不会为了下一次连接而维护这次连接所传输的信息,为了保证服务器内存。 比如客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登陆该网站,但是服务器并不知道客户关闭了一次浏览器。 由于Web服务器要面对很多浏览器的并发访问,为了提高Web服务器对并发访问的...

weixin_30781433的博客 440

为什么Http协议是一种无状态协议?项目中如何解决这种无状态的问题

HTTP协议被称为无状态协议,主要是因为它不会在服务器端保留客户端的状态。这意味着,每次客户端向服务器发送请求时,服务器都会将其视为全新的请求,而不会了解之前的请求或响应。因此,HTTP协议无法在多个请求之间保持状态在项目中,解决这种无状态的问题主要有以下几种方式1使用Cookie: Cookie是一种在客户端存储状态信息的方式。服务器可以通过在响应中设置Cookie,将状态信息存储在客户端的浏览器中。然后,在后续的请求中客户端会自动将Cookie包含在请求头中以便服务器可以识别和跟踪用户的状态2使用Ses

2301_79577017的博客 621

为什么 HTTP 是 “无状态协议”?JavaEE 初阶必学的协议特性

HTTP无状态性是基础设计,但通过 JavaEE 提供的会话管理技术,开发者可以灵活构建有状态应用。理解这一特性有助于合理选择技术方案,平衡性能与功能需求。

2501_93891941的博客 390

【架构设计必知必会】无状态协议为什么HTTP无状态是“伪命题”?

(Stateless Protocol)指协议本身。

2401_83194332的博客 733

2019.3.26 为什么HTTP无状态协议/无连接

无状态 1.协议对于事务处理没有记忆能力 2.对同一个url请求没有上下文关系 3.每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求时无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况 4.服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器 无连接 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户...

weixin_30950607的博客 234

HTTP协议为什么无状态的?如何让HTTP“有状态”?

在面试中被问到HTTP协议是有状态还是无状态的,当场就有点懵,因为不会就没答出来。还是得总结一下啵! 一、HTTP协议的状态 HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。 也就是,上一次的请求对这次的请求没有任何影响,服务端也不会对客户端上一次的请求进行任何记录处理。 二、HTTP协议无状态性带来的问题: 用户登录后,切换到其他界面,进行操作,服务器端是无法判断是...

H_Expect的博客 1万+

什么是无状态

所谓http无状态协议,言外之意是http协议没法保存客户机信息,也就没法区分每次请求的不同之处。关于http无状态阻碍了交互式应用程序的实现。比如记录用户浏览哪些网页、判断用户是否拥有权限访问等。于是,两种用于保持HTTP状态的技术就应运而生了,一个是Cookie,而另一个则是Session。 ...

qq_41750574的博客 1713

什么是无状态(Stateless)和有状态(Stateful)服务?

通过上述多维度分析,可依据业务需求(扩展性、一致性、延迟敏感性)合理选择服务模型,或采用混合架构实现最佳平衡。

破损的天堂鸟博客 2395

拓展知识一:无状态和有状态

独立性:以自动售货机为例,假设你投币购买一瓶饮料,自动售货机在收到你的硬币并确认金额足够后,就会吐出你选择的饮料。之后,当另一个人来购买饮料时,自动售货机不会记得你之前的购买行为,它只是根据当前这个人投入的硬币和选择的饮料进行处理,这就体现了每个请求(购买行为)的独立性,自动售货机不会参考之前的请求信息来处理当前的请求。可扩展性:想象有一家繁忙的餐厅,餐厅里有很多服务员。每个服务员都可以独立地接待顾客、记录订单和上菜,不需要与其他服务员频繁沟通来了解之前顾客的情况。

2401_83164661的博客 840

怎么理解程序设计中的有状态和无状态

在设计系统时,选择有状态或无状态取决于需求。如果需要维护用户会话或多个交互的上下文,可能需要有状态的设计。如果希望提高系统的可扩展性和健壮性,通常会选择无状态的设计。

heu123456的博客 1060

什么叫做“无状态”?服务端真的不需要保存 JWT 吗?

服务端不需要记录用户的登录状态或会话数据,用户每次请求都必须自带身份信息,服务端根据请求本身即可完成验证。

2501_91858856的博客 1143

ASM1042 USB3.0最新驱动

ASM1042 USB3.0最新驱动,WIN7 64能用

SIMATIC Automation Tool V5.0安装包+使用明书-链接地址.txt

SIMATIC Automation Tool V5.0安装包+使用明书

上一篇: LR中获取当前系统时间的方法
下一篇: python中return与print
aoyan3067
博客等级 码龄10年 2粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值