TCP/IP分为应用层、传输层、网络层、数据连接层、物理层五层。
而TCP对应于传输层、而HTTP协议对应于应用层。Socket是什么?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,他把复杂的TCP/IP协议隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket区组织数据,以符合指定的协议。如图:
三者什么从本质上来说没有什么可比性,
HTTP实在应用层协议,主要解决如何包装数据;
Socket则是对TCP/IP协议的封装和应用(程序员层面上);
TCP/IP协议是传输层协议,主要解决如何在网络中传输。
关于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协议没有必然的联系。
Socket编程接口在设计的时候,就希望也能适应其他的网络协议。
HTTP连接的特点
HTTP协议即超文本传输协议(Hypertext Transfer Protocol),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP之上的一种应用。
HTTP协议最显著的特点是客户端发送的每次请求都需要服务器会送响应,在请求结束后会主动释放连接。从建立连接到关闭连接的过程成为”一次连接”。