2. 无状态协议

9 篇文章 0 订阅

无状态协议

无状态协议是一种通信协议,其中接收方不能保留以前请求的会话状态。发送方将相关的会话状态传输给接收方,这样每个请求都可以独立理解,即不参考接收方保留的以前请求的会话状态

相反,有状态协议是一种通信协议,其中接收方可以保留以前请求的会话状态。

在计算机网络中,无状态协议的例子包括因特网协议(IP),它是因特网的基础,超文本传输协议(HTTP),它是万维网的基础。有状态协议的例子包括传输控制协议(TCP)和文件传输协议(FTP)。

无状态协议提高了可见性、可靠性和可伸缩性。可见性得到了改善,因为监控系统无需查看单个请求就能确定其完整性质。可靠性得到了提高,因为它简化了从局部故障中恢复的任务。可伸缩性得到了改善,因为不需要在请求之间存储会话状态,允许服务器快速释放资源并进一步简化实现。

无状态协议的缺点是,它们可能会增加在一系列请求中发送的重复数据,从而降低网络性能,因为这些数据不能留在服务器上重用。

举例

HTTP服务器可以独立地理解每个请求

与与用户进行交互会话的传统FTP服务器相比。在会话期间,为用户提供了进行身份验证和设置各种变量(工作目录、传输模式)的方法,这些变量都作为会话状态的一部分存储在服务器上。

用过FileZilla 的知道,使用的 sftp 协议,也就是文件传输协议。他是有状态协议,在FileZilla 工具左下角看到之前的传递信息。它就保留了会话的状态。
在这里插入图片描述

无状态协议与有状态协议的叠加

不同协议层之间的有状态协议和无状态协议之间可能存在复杂的交互。例如,HTTP是一种无状态协议,它位于TCP之上,TCP是一种有状态协议,它位于IP之上,另一种无状态协议在使用BGP(另一种有状态协议)引导网络上的IP包的网络上路由。

这种层的叠加甚至在HTTP之上还在继续。作为缺少保留会话状态的解决方案,HTTP服务器实现了各种会话管理方法,通常利用HTTP cookie中的会话标识符引用存储在服务器上的会话状态,有效地在HTTP之上创建了一个有状态的协议。HTTP cookie 违反了REST架构风格,因为即使不引用存储在服务器上的会话状态,它们也独立于会话状态(它们影响浏览器历史记录中同一网站的前几页),而且它们没有定义的语义。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值