套接字只是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/