分层及其协议
应用层:HTTP协议(基于传输层的TCP协议,主要解决如何包装数据)
传输层: TCP协议(基于网络层的IP协议)、TPC/IP协议(主要解决数据如何在网络中传输)
网络层: IP 协议
Socket连接与HTTP连接
1.概念
由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。
而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
通常即时性强的应用,用socket来通信。
2.应用
- 实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口 (API)
- 通常httpConnection指的就是客户端到服务器的80端口建立了一个socket. 比如你打:http://xxx.xxx.xxx.xxx:8080这个url就连到了8080端口。
- http通信和普通socket通信没有区别。只是url协议定义了http一般指的就是web服务器。 你在服务器发送什么数据都可以,不一定是html文档。 现在很多在网上的下载就是通过http发送的。