Socket是什么?
- TPC/IP协议是传输层协议,主要解决数据如何在网络中传输;
- Socket是对TCP/IP协议的封装和应用(程序员层面上);
- 而HTTP是应用层协议,主要解决如何包装数据。
TCP/IP和HTTP协议的关系是: “我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。如果想要使传输的数据有意义,则必须使用到应用层协议。应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”
Socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。通过Socket,我们才能使用TCP/IP协议。
Socket跟TCP/IP协议关系是: “TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

从上图中可以看到,HTTP是基于传输层的TCP协议的,
本文详细介绍了Socket、WebSocket和HTTP的区别。WebSocket是为了解决HTTP协议在双向通信场景下的不足,它基于TCP,利用HTTP进行握手,然后进行数据帧的交换。Socket是对TCP/IP协议的封装,提供编程接口。HTTP则是应用层协议,基于TCP/IP进行数据传输。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



