IP、Http、Socket 有何区别与联系?

HTTP 协议对应于应用层,Socket 则是对 TCP/IP 协议的封装和应用(程序员层面上)。

HTTP 是应用层协议,主要解决如何包装数据。而我们平时说的最多的 Socket 是什么呢?实际上 Socket 是对 TCP/IP 协议的封装,Socket 本身并不是协议,而是一个调用接口(API)。

TCP/IP、Http、Socket 有何区别与联系?

通过 Socket,我们才能使用 TCP/IP 协议。实际上,Socket 跟 TCP/IP 协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。

所以说,Socket 的出现只是使得程序员更方便地使用 TCP/IP 协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道 的一些最基本的函数接口,比如 create、listen、connect、accept、send、read和 write 等。

网络有一段关于 Socket 和 TCP/IP 协议关系的说法比较容易理解:“TCP/IP 只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外 的操作接口。

这个就像操作系统会提供标准的编程接口,比如 win32 编程接口一样,TCP/IP 也要提供可供程序员做网络开发所用的接口,这就是 Socket 编程接口。”

TCP/IP、Http、Socket 三者的关系

CSDN上有个比较形象的描述:

HTTP 是轿车,提供了封装或者显示数据的具体形式; Socket 是发动机,提供了网络通信的能力。

实际上,传输层的 TCP 是基于网络层的IP协议的,应用层 HTTP 协议又是基于传输层的 TCP 协议;

Socket 本身不算是协议,就像上面所说,它只是提供了一个针对 TCP 或者 UDP 编程的接口。

TCP/IP、Http、Socket 有何区别与联系?

利用 Socket 建立网络连接的步骤

建立 Socket 连接至少需要一对套接字,其中一个运行于客户端,称为 ClientSocket ,另一个运行于服务器端,称为 ServerSocket 。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认


1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。


2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。


3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给 客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

TCP/IP、Http、Socket 有何区别与联系?

HTTP 链接的特点

HTTP协议是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求 都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。


分享到:


相關文章: