参考文章地址:
http://www.cnblogs.com/xclidongbo/p/4032904.html?utm_source=tuicool&utm_medium=referral
HTTP协议:超文本传输协议。
1.以明文方式发送数据;
2.用于从www服务器传输超文本到本地浏览器的传输协议;
3.基于TCP/IP为基础的高层协议。
网络七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
HTTP→应用层,超文本传输协议;用于封装数据;
TCP/UDP→传输层,传输控制协议;
IP协议→网络层;
TCP/IP协议→传输层协议,主要解决数据在网络中的传输;
WEB使用HTTP协议作为应用层协议,将数据封装,再使用TCP/IP做传输层协议,将数据发送。
Socket→是一个接口,对TCP/IP协议进行封装;通过Socket才可以使用TCP/IP协议;
HTTP连接(短连接)
客户端每次发送请求后,都需要服务器端回送响应,请求结束后,主动释放链接,所以为短连接。
通常做法是,不需要任何数据,客户端每隔一段时间就会向服务器端发送“保持连接”的请求,这样可以保证客户端在服务器端一直处于“上线”状态。
TCP连接
三次握手:
1.客户端向服务器端发送请求,同时自己处于SEND状态;
2.服务器接收到客户端的请求,向客户端回送响应,同时自己处于RECEIVE的状态;
3.客户端接收到服务器端的响应,再发送一个确认信息,发送完毕后双方都进入连接状态;
握手期间不传输数据,三次握手之后,才开始传输数据。并且在理想状态下,TCP连接一旦建立,就会一直保持下去,除非其中一方主动断开连接。
Socket连接
建立连接至少需要一对套接字,serverSocket和clientSocket;
1.服务器监听:服务器不定位具体客户端套接字clientSocket,而是时刻处于监听状态;
2.客户端请求:客户端向服务器端提出请求,并描述它想要连接的服务器端,提供地址和端口号;
3.连接确认:服务器端接收到客户端请求后,响应客户端请求,并建立一个新的线程,将服务器端的serverSocket描述发送给客户端,一旦客户端确认了描述,连接就被建立。并且服务器继续处于监听状态来接收其他客户端发来的请求。
Socket连接与TCP连接
建立Socket连接时,可以指定传输层协议,TCP协议的话就是TCP连接,UDP协议的话就是UDP连接。
Socket连接与HTTP连接
通常情况下,Socket连接就是TCP连接,那么这种情况下,连接一旦建立,客户端和服务器端开始持续传输数据,直至连接断开。实际应用中,由于网络节点过多,会被节点断开连接,因此需要轮询高速网络,让节点处于活跃状态。
HTTP连接使用“请求-响应”方式,在请求时建立连接,服务器端接收到客户端请求后,才返回数据。
Socket连接:适用于服务器端需要向客户端推送数据来保持双方数据同步的情况;
HTTP连接:适用于客户端一直向服务器端发送请求,保持在线状态,并且询问是否有新的数据,如果有新的数据再将数据回传给客户端的情况。