我假设这是一个关于套接字和HTTP连接之间关系的非常普遍的问题。我还假设"HTTPConnection"并不涉及特定的API /运行环境,尽管它的驼峰式术语可能会暗示其他方面。现在,让我们来介绍一下OSI模型: OSI模型描述了网络通信的抽象层级。一个socket是一个概念,将存在于第3层,即网络层,作为Internet Protocol (IP)的一部分。 HTTP比IP更高的抽象级别,通常被认为位于应用层,在OSI模型的“顶部”。类比如下:您可以按照同样的方式定义城市的交通和交通流量,就像我们定义网络设备一样。- 最简单的情况下,城市是由一堆建筑物组成的。 - 随着城市的发展,人们需要从建筑物到建筑物旅行,因此他们开发出道路。道路是城市的新“层”。 - 随着更多的人使用道路,他们开始需要一套规则和法律来帮助保持每个人的安全。 - 一旦人们在道路上安全了,他们希望道路既高效又快速,因此一套灯光和标志系统有助于协调人们在道路上的行动。两件重要的事情:首先,每一层都依赖于其下面的层。没有建筑(目的地),道路就变得无意义。没有道路,交通规则就变得愚蠢。没有交通规则,交通信号就变得愚蠢。第二,高层协议的细节取决于所在的城市:有时你会发现自己在一个人们靠左行驶的国家,有时他们靠右行驶。有时你可以在红灯亮起时转弯,有时不行。有时会有道路,但没有交通法规。类比结束因此,在互联网上,有时你需要与不同类型的服务器通信。在底层,它们可能都依赖于套接字(即互联网的“道路”),但它们都有自己的“交通法规”需要遵守 - 如HTTP、FTP或SOAP协议。
假设套接字只是两个远程系统之间使用TCP/IP或UDP等低级协议传输数据的流。而HTTP是更高级别的协议,它规定了系统之间的通信方式。举个小例子:空气是声音的传输层,但你需要词语(一种更高级别的协议)与其他人进行交流。但最好您在这里阅读:http://en.wikipedia.org/wiki/OSI_model