栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

他们说http是无状态的是什么意思

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

他们说http是无状态的是什么意思

HTTP(服务器与客户端之间的实际传输协议)是“无状态的”,因为它在调用之间不记忆任何内容。 通过HTTP访问的 每个
资源都是单个请求,它们之间没有线程连接。如果使用HTML文件加载网页,该HTML文件中包含

<img>
指向同一服务器的三个标记,则将协商并打开四个TCP连接,四个数据传输,四个连接关闭。
协议 级别 的服务器 上 __根本没有任何状态可以让服务器 您进入时对您有任何了解。

(嗯,无论如何,对于高达1.0的HTTP都是如此。HTTP1.1添加了各种持久连接机制,因为真正的无状态协议会带来不可避免的性能问题。我们暂时将其忽略,因为它们并没有真正使HTTP成为有状态的,它们只是使它变为无状态的脏状态,而不是纯粹的无状态的代码。)

为了帮助您了解两者之间的区别,请设想Telnet或SSH等协议是无状态的。如果要获取远程文件的目录列表,则必须执行一次原子操作,即连接,登录,更改目录并发出

ls
命令。当
ls
命令完成显示目录内容后,连接将关闭。然后,如果您想显示特定文件的内容,则必须再次连接,登录并切换到目录,然后发出
cat
命令。当显示文件的命令完成时,连接将再次关闭。

当您以这种方式看时,虽然Telnet /
SSH听起来很愚蠢,不是吗?好吧,在某些方面它是事实,在某些方面不是。当协议是无状态的时,服务器可以进行一些非常好的优化,并且数据可以轻松地散布。使用无状态协议的服务器可以非常有效地扩展,因此,尽管实际的单个数据传输可能非常慢(打开和关闭TCP连接并不便宜!),但是整个系统可以非常非常高效,并且可以扩展到任意数量的用户。

但…

除了查看静态网页之外,几乎您要执行的其他任何操作都将涉及会话和状态。当HTTP用于其原始目的(共享静态信息,如科学论文)时,无状态协议很有用。当您开始将它用于Web应用程序,在线商店等时,无状态便开始变得麻烦,因为它们本质上是有状态的活动。结果,人们非常迅速地想出了在无状态协议之上建立状态的方法。这些机制包括cookie之类的东西,如URL中的状态编码,以及让服务器根据这些内容动态地启动数据,如隐藏状态请求之类,.........直到一大堆东西为止,包括更现代的东西。
Web套接字之类的东西。

您可以通过以下链接来更深入地了解这些概念:

  • http://en.wikipedia.org/wiki/Stateless_server
  • http://en.wikipedia.org/wiki/HTTP
  • http://en.wikipedia.org/wiki/HTTP_persistent_connection


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号