HTTP 应用程序中使用什么协议来传输消息?

HTTP 应用程序中使用什么协议来传输消息?

这是一道面试题 -http://www.glassdoor.com/Interview/Yelp-Software-Engineering-Intern-Interview-Questions-EI_IE43314.0,4_KO5,32_IP2.htm

“HTTP应用程序中用于传输消息的协议是什么?”

我知道协议定义了“通过计算机网络交换数据的方法”。 http://www.computerhope.com/jargon/p/protocol.htm

我知道 HTTP 是“用于在万维网上传输数据的协议”。(http://www.computerhope.com/jargon/p/protocol.htm

我知道应用程序是“具有用户界面的程序”(https://stackoverflow.com/questions/4431819/what-are-the-differences-between-a-program-and-an-application

结合所有这些定义,我认为 HTTP 应用程序只是可以通过互联网访问的应用程序,例如 StackOverFlow。但是对于将消息传输到应用程序,这是否也可以通过 HTTP 完成,因为它涉及通过全球互联网发送数据?

HTTP 是这个问题的正确答案吗?还是其他原因?

答案1

我没有在您发布的链接上看到这个问题。而且“HTTP 应用程序中用于传输消息的协议?”不是一个完整的问题,因此很难说出真正问的是什么。

您的评论完全正确。HTTP 应用程序正在与客户端或服务器进行 HTTP 通信。关于要传输的消息,必须询问这是外部消息还是内部消息。内部消息可以是任何类型、任何协议的任何消息。如果是使用 HTTP 发送的消息,则协议是 HTTP,就这么简单。

如果问题是通常使用哪些其他协议,您可以从 TCP、IP、以太网开始。对于 HTTPS,您还可以考虑 SSL 和 TLS。

如果问题是关于可以通过 HTTP 发送的消息,那么 STTR 会给出一份可以在 HTTP 上使用的相当长的协议列表。

答案2

通过HTTP协议传输消息:XML(UDDI,WSDL,SOAP);WS-Security;XML-RPC;JSON;REST

业务流程协议:BPEL、BPMN

消息协议:SOAP、AMQP、MQTT、STOMP

Java:JMS

套接字:WebSocket

代理对象协议:COM/DCOM、CORBA/IIOP(HTIOP、SSLIOP)、JAVA RMI

套接字:WebSocket

Adobe 消息协议:AMF

P2P:WebRTC

如果你查看第一个协议列表并将 http 协议视为与 XML 协同工作的服务,那么从这个角度来看,这些协议具有最大的亲和力。

是的,所有这些协议都可以包装到其他协议中,例如 FTP,甚至可以使用 UDP 数据报。

尤其是当您考虑 IP 协议级别 - TCP/IP、UDP/IP 时。

但是,除其他外,HTML、SOAP、UDDI 和第一列表中的其他协议是网络模型 OSI(应用程序)的 7 层。并且,此列表使用 HTML 进行包装或传输。作为参数或作为 HTTP 中的文件服务器。

其他列表具有不同的亲和力,但有一个共同的特征 - 服务器-服务器和客户端-服务器部分之间的交互。

例如,没有针对 AJAX 的权限。是的,您可以在服务器上制作自定义实现浏览器,然后,您将在服务器上拥有一个 AJAX-AJAX Web 应用程序之间的交互仿真系统,但对我来说 - 这是牵强的。


所有 7 个级别都包含其标题,并且每个级别都代表下一个级别,就像一个整体。

事实是,OSI 模型的级别越高,就越容易进入内部嵌套娃娃人。 在此处输入图片描述

大多数人都能处理上层的信息。在我看来,最终的信息更为重要。

还可以欣赏电磁振荡——例如北极光。 在此处输入图片描述

或者变形金刚特斯拉。 在此处输入图片描述

但这是一种审美的享受。

任务级协议7——实用且务实。

在我看来,消息是OSI模型,它可以从Web系统交互的可能性中推导出来。

是的,你可以深入到底并说 - 放入一个电容器电路并因此撕裂电流 - 进行电流隔离。

但是振荡过程会更进一步——通过电容器,并将这个过程视为信号或信息,并且该过程将假定该信息。

因此你需要决定——信息是什么?传输媒介是什么?以及你决定在哪个宏观抽象层次上考虑这一现象。

答案3

HTTP 应用程序中使用什么协议来传输消息?

如果您使用浏览器访问 HTTP 应用程序,则浏览器会通过 HTTP 或 SPDY 与应用程序通信,而应用程序也会使用相同的协议进行响应。

“HTTP 应用程序”可以表示具有“HTTP API”的东西 - 这基本上意味着它不是为浏览器或人类用户设计的,而是为程序设计的。它们仍将使用 HTTP/SPDY协议发出请求并接收响应 - 但内容可能不是 HTML — 它可能是 XML 或 JSON,或者它可能只是一个没有正文的 HTTP GET 请求。

相关内容