摘录自博客 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应用就是这样的。

HTTP协议为什么是无状态的?无状态指的是什么相关推荐

  1. HTTP协议无状态中的 状态 到底指的是什么?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 赛艇队长 来源 | cnblogs.com/bellko ...

  2. 难住了N个面试者,http协议无状态中的 状态 到底指的是什么?!

    作者:赛艇队长 cnblogs.com/bellkosmos/p/5237146.html 引子 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无连接的]就无法理解了: ...

  3. 初识IPv6 有状态、无状态地址相关协议

    本文主要介绍IPv6全局单播地址(Global Address)的获取方式及其相关的协议,DHCPv6协议和RA.RS报文(邻居发现协议). 1.全局单播地址类型 IPv6地址中分为本地链路地址(Li ...

  4. HTTP 无状态中的 状态 到底指的是什么?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.cnblogs.com ...

  5. 比较ipv6有状态与无状态地址分配工作特点_IPv6环境获取IPV6地址,无状态地址分配,一分钟了解下...

    一.DHCPv6基础 DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持 IPv6 的动态主机配置协议)是针 对 IPv6 编址方案设计的,为 ...

  6. IPv6系列-彻底弄明白有状态与无状态配置IPv6地址

    深入研究自动分配IPv6地址的Stateless(无状态)与Stateful(有状态)方式 小慢哥的原创文章,欢迎转载 目录 小说搜索 biqi.org ▪ 一. Link-Local Address ...

  7. 什么叫有状态,无状态

    什么叫有状态,无状态 先说结论: 无状态 当前的操作不需要历史信息的支持,一般都是短连接,比如在某个新闻网站上浏览新闻等.当从服务器获取资源后就可以和服务器断开连接 有状态 当前操作需要历史数据的支持 ...

  8. OpenSIPS的无状态及有状态路由

    从SIP消息路由的角度看,OpenSIPS既可以作为无状态代理,也可以作为有状态代理.区别仅仅是处理SIP信令的脚本中调用了什么函数而已. 在有状态模式下,OpenSIPS在内存中记录了SIP事务的状 ...

  9. linux dhcpv6有状态配置,ipv6 有状态和无状态什么意思

    这是IPv6协议的一个突出特点:支持网络节点的地址自动配置. 一.有状态就是有数据存储功能.有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的.在不同方法调 ...

  10. 分布式系统中的“无状态”和“有状态”详解

    「数据一致性」和「高可用」其实本质是一个通过提升复杂度让整体更完善的方式. 本文主要讲一些让系统更简单,更容易维护的东西--「易伸缩」,首当其冲的主题就是「stateless」,也叫「无状态」. 服务 ...

最新文章

  1. 多模型融合(相当于投票)
  2. 产品经理跳槽面试大揭秘……
  3. asp:UpdatePanel中使用下拉时不得不注意的问题
  4. ansible(6)——模块命令command、shell详细用法
  5. Pycharm配置Python虚拟环境与在虚拟环境安装PYQT5
  6. 如何在jQuery的SELECT元素中选择特定选项?
  7. C++不垃圾,只是Java很傲慢
  8. Word 2019怎样自定义模板,并将自定义模板设为默认模板
  9. DoG算子和LoG算子
  10. ABAP中如何建数据库视图和维护视图
  11. Docker镜像无法被删除的解决方法
  12. WannaRen勒索软件解密密码计算工具发布
  13. birthday日期类型转化
  14. 编解码学习笔记(三) Mpeg系列——Mpeg 1和Mpeg 2
  15. Ant Design Pro 企业级后台实战(73 个视频)
  16. 松翰烧录器在keil仿真时闪退,解决方法
  17. ios avplayer播放完毕监听
  18. 台式电脑开启休眠模式(win10)
  19. 手机控制电脑远程开机,笔记本与老电脑都能实现
  20. 游戏资讯查询易语言代码

热门文章

  1. linux驱动程序启动失败,打开程序提示加载驱动失败?三种故障原因及解决方法...
  2. 一个牧场目前一共有20头刚出生的羊,母羊、公羊各一半。假如母羊5岁时后每年生一胎(母羊,公羊各一半)。羊活到10岁后死亡。请问20年后这个牧场有多少只羊? 请用C#写出算法。
  3. 淘宝客是什么?淘宝客怎么做呢?
  4. 【数据治理】数字治理的效度、温度、 尺度
  5. 【解决】Yandex浏览器Bing搜索遭遇trovi.com劫持
  6. HDU 3533 Escape (预处理+BFS)
  7. 前端周刊第56期:应接不暇的技术大会
  8. Java soso移动大厅项目
  9. 通信方式的分类(串行通信和并行通信)
  10. ps显示计算机内存不足怎么办,PS常见问题——内存不足,解决办法!