TCP、HTTP、Socket

 Tcp连接:
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机通过无线网络建立TCP连接。
建立一个TCP连接需要经过“三次握手”,具体如下:
第一次握手:客户端发送请求包到服务器,等待服务器确认
第二次握手:服务器响应客户端请求,同时也发送一个回应包给客户端
第三次握手:客户端收到服务器的回应包后,向服务器发送确认包

握手过程中传送的包里,不包含数据,三次握手完毕后,客户端与服务端才正式的开始传递数据。
TCP一旦连接起来,在客户端和服务端任何一方主动关闭连接之前,TCP连接都将被一直保持下去。
断开连接时,服务器和客户端都可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”

Http连接:
Http协议是建立在TCP协议之上的一种应用。

它与TCP连接不同之处在于,客户端每次请求都需要服务器返回响应,在请求结束后,会主动释放连接。

由于HTTP每次请求都会释放连接,因为HTTP连接是一种“短连接”,所以要保持客户端在线状态,就必须不停地向服务器发起连接请求。

所以在开发过程中,即使不需要获得任何数据,客户端也要保持每隔一段时间向服务器发送一次请求,以保证通信的正常。


Socket连接:
Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。
建立Socket连接需要一对套接字,其中一个运行客户端,另一个运行服务器端,套接字之间的连接过程分为
三个步骤:服务器监听,客户端请求,连接确认

 


TCP/IP是什么?

   TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
   在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
   在传输层中有TCP协议与UDP协议。
   在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

 

Socket是什么呢?

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,一组接口,把复杂的TCP/IP协议族隐藏在Socket接口后面。

   所以HTTP就是TCP/IP应用层的协议。Socket是他们的软件抽象层。

短连接:
   连接->传输数据->关闭连接
   HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
   也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。
长连接:
    连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。
   长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。
http的长连接:
   HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌
似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。


————————————————
版权声明:本文为CSDN博主「渣皮人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuyide54321/article/details/7075222

https://blog.csdn.net/yangzl2008/article/details/7366428

原文地址:https://www.cnblogs.com/xtxt1127/p/12341530.html