套接字只是2台计算机之间的连接吗?如果可以建立套接字,为什么还要使用HTTPConnection?

最佳答案

我认为这是关于套接字和HTTP连接之间关系的一个非常普遍的问题。我还假设“HTTPConnection”不引用涉及特定API/运行时/环境的内容,即使它是带有空格的camel cased术语的方式也可能表示相反。

既然这样,我就给你呈现OSI model:

OSI模型描述了网络通信的抽象级别。 socket是一个概念,它将作为Network Layer的一部分存在于第3层Internet Protocol (IP)上。

HTTP是IP的更高抽象度,通常被认为是OSI模型“顶部”的应用层中的IP。

比喻

您可以像定义网络内容一样,在不同的“层次”上定义城市的交通和流量。

  • 简单来说,城市就是一堆建筑物。
  • 随着城市的发展,人们需要从建筑物到建筑物旅行,因此他们开发了道路。道路是通往城市的新“层”。
  • 随着越来越多的人上路,他们开始需要一套规则和法律制度来帮助确保所有人的安全。
  • 但是,一旦人们在道路上安全后,他们便希望道路高效,快捷,因此,灯光和标志系统可帮助协调道路上的人们。

  • 两件重要的事情:

    首先,每一层都取决于其“下面”的一层。没有建筑物(目的地),道路变得愚蠢。没有道路,交通法规很愚蠢。没有交通法规,交通信号灯就很愚蠢。

    其次,高层的具体情况因您所在的城市而异:有时您会发现自己身处一个人在左边开车,而有时他们在右边开车的国家。有时您可以打开红色,有时则不能。有时有路,但没有法律。

    类比结束

    因此,在Internet上,有时您会与不同类型的服务器进行通信。在底下,它们可能都依赖套接字(Internet的“道路”),但是它们都有自己必须遵守的“流量法则”-诸如HTTP或FTP或SOAP之类的协议(protocol)。

    关于sockets - 到底什么是Socket?为什么我们不能使用套接字而不是HTTP?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4765863/

    10-16 19:00