无sslmqtt是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无sslmqtt是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A 无sslmqtt指的是无物联网连接协议。
MQTT是一种机器对机器(M2M)/”物联网 “连接协议。它设计初衷是用于极轻量级的发布/订阅消息传输。它适于于远程连接环境,需要少量代码交互并且网络带宽很稀缺的场景。例如,通过卫星链路来连接传感器与代理服务器,与医疗服务提供商的偶尔数据连接,以及在一系列家庭自动化和小型设备场景中。它也是移动应用的理想选择,因为它体积小、功耗低、数据包最小化,并能有效地将信息分配给一个或多个接收器。
MQTT 协议由 Andy Stanford-Clark (IBM) 和 Arlen Nipper(Arcom,现为 Cirrus Link)于 1999 年发明。 他们需要一种通过卫星连接石油管道的协议,以最大限度地减少电池损耗和带宽。

HTTP是无状态的,那么keep-alive是啥意思?

【中文标题】HTTP是无状态的,那么keep-alive是啥意思?【英文标题】:HTTP is statel-less,so what does it mean by keep-alive?HTTP是无状态的,那么keep-alive是什么意思? 【发布时间】:2011-08-28 23:48:19 【问题描述】:
Keep-Alive: 300
Proxy-Connection: keep-alive

我们知道HTTP连接在请求得到响应时关闭,那么keep-alive是什么意思,有人能详细说明一下吗?

【问题讨论】:

【参考方案1】:

这意味着可以保持连接打开以请求更多资源,例如图像和样式表。

【讨论】:

所以说HTTP is state-less是错误的,在这种情况下它可以是全状态的,对吧? 不,HTTP 确实是无状态的。这意味着服务器返回的数据不依赖于用户之前的任何操作。 Cookie 和其他非 HTTP 方法使 Web 看起来是有状态的,例如使用户能够在网站上登录和退出。这种意义上的状态与连接无关。 好像我一直在错误地理解stateless,我认为它与非持久连接相同......那你能举一个有状态协议的例子吗? 例如 TCP 是一个有状态的协议。基本上,执行某种握手的每个协议都是有状态的。见mama.indstate.edu/users/shri/State.html【参考方案2】:

协议确实是无状态的,但是keep-alive表示客户端和服务器之间的连接应该保持打开状态。

打开 TCP 连接是一项相对重量级的操作,保持该连接打开可以避免与打开新连接相关的设置和拆卸成本。

【讨论】:

如果连接是持久的,怎么可能是无状态的? 是的,连接是准持久的,直到客户端的资源完成服务。但是一旦服务器完成发送资源,连接就会关闭,使其成为无状态的。【参考方案3】:

我们知道,当请求得到响应时,HTTP 连接已关闭

什么是 HTTP 连接?实际上,它是一个实现 HTTP 的套接字连接。只有在 HTTP1.0 中,每次响应后连接才会关闭。为了节省建立 TCP/IP 连接的成本,HTTP1.1 规定除非客户端发送标头

Connection:close

或者服务器返回相同的标头,然后套接字保持打开状态。您可以根据需要向此套接字提供任意数量的请求,并且响应将按照请求的顺序返回。这要求响应要么使用分块传输编码发送,要么包含内容长度标头,以便可以检测/计算每个响应的结尾。

proxy-connection 标头再次不同,仅与客户端和代理服务器之间的对话有关。

我推荐此页面作为协议的优秀指南。

HTTP Made Really Easy

【讨论】:

如果连接是持久的,如何确保the responses will come back in the order that they were requested?可能后面的请求会更早得到响应,对吧? 这是服务器的责任。给定单个套接字上的请求顺序,则服务器必须以相同的顺序响应。【参考方案4】:

Keep-alive 与状态无关。

在网络中,最昂贵的操作之一是反复打开和关闭连接。然而,现代 HTML 页面在技术上要求您准确地做到这一点:首先,获取页面,然后获取每个资源并重复,直到您拥有所有内容。由于这会非常慢,HTTP/1.1 允许代理保持连接活动,直到他从服务器获得他想要的一切。

Keep-alive基本上是网络浏览器告诉服务器不要挂断。

【讨论】:

那跟有状态有什么关系呢? 在 HTTP 中,什么都没有,因为 HTTP 是一个无状态协议。 HTTP 中的每个请求都是在真空中进行的。对比 TCP,您发送的每个后续数据包都是前一个数据包的延续。 TCP 需要注意每个数据包的接收方式,以便它可以为更高的协议(如 HTTP)构建有意义的消息。这就是协议有状态的原因:每个请求/数据包都是对话的一部分,而不是单个请求/数据包【参考方案5】:

这个问题已经回答并接受了,但我想详细解释一下:

keep-alive 不能永远保持一个连接;应用程序 在服务器中运行决定了保持 连接活动,并且在大多数情况下您可以配置此限制。

在 HTTP/1.1 中,默认使用 Keep-alive。如果客户端有其他请求,他们将为它们使用相同的连接。

无状态一词并不意味着服务器没有能力保持 一个连接。它只是意味着服务器无法识别任何 任意两个请求之间的关系。

【讨论】:

以上是关于无sslmqtt是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

在这个 C90 未定义的行为定义中,“有符号或无符号类型”是啥意思?

无internet访问权限怎么解决 是啥意思怎么办

zk是啥意思?

电视经常出现CIBN环球影视无响应要将它关闭吗?是啥意思

latex运行过程中出现星号是啥意思

与类型转换相关的排名是啥意思?