HTTP和SOCKET的区别 短命女 2024-03-25 16:03 8阅读 0赞 #### 一、七层网络协议及作用 #### ![0ed3ea63fc216eb2e51b87a6dfccf346.png][] 应用层:HTTP协议、FTP、TELNET等 传输层:TCP/UDP协议,TCP/IP协议 网络层:IP协议 #### 二、HTTP协议 #### **http 为短连接:**客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。 HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。 因此,通常的做法是,不需要任何数据时,也要保持每隔一段时间向服务器发送"保持连接"的请求。这样可以保证客户端在服务器端是"上线"状态。 #### 三、Socket连接 #### 要想明白 Socket,必须要理解 TCP 连接。 TCP 三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。 Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。 创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。 **Socket为长连接:**通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。 **Socket原理:** Socket 连接,至少需要一对套接字,分为 clientSocket,serverSocket 连接分为3个步骤: **(1) 服务器监听:**服务器并不定位具体客户端的套接字,而是时刻处于监听状态; **(2) 客户端请求:**客户端的套接字要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求; **(3) 连接确认:**当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确认了此描述,就正式建立连接。而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求. #### 四、总结 #### 很多情况下,都是需要服务器端向客户端主动推送数据,保持客户端与服务端的实时同步。 若双方是 Socket 连接,可以由服务器直接向客户端发送数据。 若双方是 HTTP 连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端。 因此,客户端定时向服务器端发送请求,不仅可以保持在线,同时也询问服务器是否有新数据,如果有就将数据传给客户端。 参考博客:[https://blog.csdn.net/qq\_43842093/article/details/120582325][https_blog.csdn.net_qq_43842093_article_details_120582325] [0ed3ea63fc216eb2e51b87a6dfccf346.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/25/a5b5c581a3134b3691589c2f0352ed0d.png [https_blog.csdn.net_qq_43842093_article_details_120582325]: https://blog.csdn.net/qq_43842093/article/details/120582325
还没有评论,来说两句吧...