http和socker的区别

http和socker的区别0x01 概述 HTTP 协议 超文本传输协议 对应于应用层 用于如何封装数据 TCP UDP 协议 传输控制协议 对应于传输层 主要解决数据在网络中的传输 IP 协议 对应于网络层 同样解决数据在网络中的传输 传输数据的时候只使用 TCP IP 协议 传输层 如果没有应用层来识别数据内容 传输后的协议都是无用的 0x02TCP 连接手机能够使用联网功能是因为手机底层实现了 TCP IP 协议 可以

0x01 概述

0x02 TCP连接

0x03 HTTP连接

  • 在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
  • 在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后在发送下一个请求。
    由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间想服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表名知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
    网络有一段比较容易理解的介绍: “我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装 HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

0x04 SOCKET连接

建立socket连接

socket连接与TCP连接

创建socket连接时,可以指定使用的传输层协议,socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该socket连接就是一个TCP连接

socket连接与HTTP连接

由于通常情况下socket连接就是TCP连接,因此socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双发连接断开。但在实际网络应用中,客户端到服务之间的通信往往需要穿越多个中间节点,例如路由器,网关,防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202442.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:07
下一篇 2026年3月20日 上午7:08


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号