Canfd协议:无状态协议和有状态协议(stateless protocol)

关于Canfd协议的问题,在stateless protocol中经常遇到, 如何理解无状态协议和有状态协议?HTTP 是无状态协议,FTP 是有状态协议。对于需要大量交互的 Web 应用程序,底层协议应该是有状态的。我的理解对吗?

如何理解无状态协议和有状态协议?HTTP 是无状态协议,FTP 是有状态协议。对于需要大量交互的 Web 应用程序,底层协议应该是有状态的。我的理解对吗?

56

HTTP 是一个无状态协议,换句话说,服务器会忘记与客户端 / 浏览器状态相关的一切。

可以强制无状态协议表现得好像它是有状态的。如果服务器将状态发送到客户端,并且客户端每次都将其再次发送回服务器,则可以实现这一点。

有三种方法可以在 HTTP 中完成:

a) 一个是 cookie,在这种情况下,状态在 HTTP 标头中发送和返回。

b)第二个是 URL 扩展,在这种情况下,状态作为 URL 的一部分作为请求发送。

c)第三个是“隐藏表单字段”,其中状态作为响应的一部分发送到客户端,并作为表单的隐藏数据的一部分返回到服务器

可扩展性和高可用性

HTTP 扩展如此之好的主要原因之一是它的无状态,无状态协议简化了复制问题,因为状态本身不需要存储在服务器上。

无状态请求可以在任何时间发送到任何节点,而有状态则不是这样。

HTTP 作为无状态协议增加了无状态 Web 应用程序的可用性,否则将很难或不可能实现。如果连接丢失,则没有丢失状态,简单的请求重新发送将解决问题。无状态请求也是可缓存的。

see more here
20

既然你问的是一个 Web 应用程序,协议将永远是无状态的-Web 的协议是 http(或 https),这就是她写的。

我认为您正在考虑的是在 Web 应用程序本身中提供状态机制。典型的方法是在 Web 应用程序中为用户的会话创建一个唯一标识符(一种形式或另一种形式的 sessionID 是常见的做法),该标识符在浏览器和服务器之间来回传递。这通常是在 cookie 中完成的,尽管可以完成,但根据您的平台 / 框架以及 URL,您会遇到更多麻烦。

您的服务器端代码存储有状态的信息 (同样,通常称为用户的会话),但是它希望使用 sessionID 来查找它。http 流量只是将 sessionID 交回。只要该标识符存在,每个 http 事务就完全独立于所有其他事务,因此协议流量本身是无状态的。

7

HTTP 是一个stateless protocol。所有基于 Web 的应用程序也都是stateless

当请求被发送到服务器时,客户端和服务器之间建立连接。服务器接收请求,处理请求并发送回响应,然后连接将被关闭。

如果将发送另一个请求,则在此之后,它将被视为新请求并建立新连接。

为了使 HTTPstateful,我们使用会话管理技术。因此,它在处理当前请求时使用来自先前请求的数据,即它使用相同的连接进行一系列客户端服务器交互。

会话管理技术包括:

隐藏表单域

Cookie

会话

URL 重写

7
Anything that forgets whatever it did in past is stateless, such as http
Anything that can keep the history is statefull, such as database

Http 是一个无状态协议,这就是为什么它忘记了用户信息。

我们使用jsonWebToken(JWT)将 http 作为 statefull 协议,即在每个请求到服务器时,服务器将首先使用JWT验证用户。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(942)
Python的pop函数怎么用:Python中的 pop函数
上一篇
Compete搭配:单元格竞争问题(amcat excel questions and answers)
下一篇

相关推荐

  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 98 11
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 52 56
  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 26 69
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-04-09 00:41:04
    0 70 60
  • cordon bleu是什么意思:法式炸鸡卷——Cordon Bleu的经典之作

    Cordon Bleu是一种烹饪技术,其中肉片被置于奶酪和火腿之间,然后用面包屑裹上,最后煎炸或烤熟。这种技术通常用于制作鸡肉,但也可以用于制作其他类型的肉类,如牛肉或猪肉。…

    2024-01-27 15:13:30
    0 64 20
  • countif 非空:非空单元格的计数

    Countif 非空是指计算某个单元格不为空的数量。代码如下:…

    2023-04-22 15:54:15
    0 68 62
  • java double保留一位小数:How to Round a Double to One Decimal Place in

    示例示例使用类可以轻松实现java double保留一位小数的功能,具体代码如下:// 创建对象…

    2023-05-14 07:40:03
    0 77 46
  • linux如何写c语言一个完整的指南

    示例示例在Linux系统中,可以使用C语言编写源代码文件,然后使用GCC编译器来编译源代码文件,生成可执行文件。下面是一个简单的C语言代码示例:…

    2023-05-16 02:02:45
    0 20 95

发表评论

登录 后才能评论

评论列表(79条)