PS:创作不易,感谢阅读,希望对读者有所帮助,喜欢的话可以点赞、收藏、关注,作者会持续更新 Java 生态圈常见知识。黑色加粗为重点关注内容!
长连接、短连接
- 长连接
- 指在一个 TCP 连接上可以连续发送多个数据包
- 在 TCP 连接期间,如果没有数据交互,需要双方发送检测包,以维持连接
- 一般需要自己做在线维持
- 短连接
- 指双方有数据交互时,就创建一个 TCP 连接,数据发送完成后,就关闭此连接
- 短连接操作步骤是:连接 → 数据传输 → 关闭连接;
- 长连接通常就是:连接 → 数据传输 → 保持连接(心跳) → 数据传输 → 保持连接(心跳) → ……→ 关闭连接;
Socket
- 一个能够连接应用层和传输层之间的套件
- 应用程序,比如浏览器、电子邮件、文件传输服务器等产生的数据,会通过传输层协议进行传输,而应用程序是不会和传输层直接建立联系的,通过 socket 进行传输的
HTTP 和 TCP/IP 的关系
- TPC/IP 协议是传输层协议,主要解决数据如何在网络中传输,而 HTTP 是应用层协议,主要解决如何包装数据
- 在传输数据时,可以只使用传输层的 TCP/IP 协议,但如果没有应用层,便无法识别数据内容
- 若想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如 HTTP、FTP、TELNET 等
- WEB 使用 HTTP 协议作应用层协议,来封装 HTTP 文本信息,然后使用 TCP/IP 作为传输层协议将它发到网络上
HTTP 和 TCP/IP 的关系
- TPC/IP 协议是传输层协议,主要解决数据如何在网络中传输,而 HTTP 是应用层协议,主要解决如何包装数据
- 在传输数据时,可以只使用传输层的 TCP/IP 协议,但如果没有应用层,便无法识别数据内容
- 若想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如 HTTP、FTP、TELNET 等
- WEB 使用 HTTP 协议作应用层协议,来封装 HTTP 文本信息,然后使用 TCP/IP 作为传输层协议将它发到网络上
Socket 和 HTTP 的关系
- Http 和 Socket 完全是两个不同的概念
- Http 是应用层协议
- 而 Socket 本身并不是协议,它是对 TCP/IP 协议的封装,并提供调用的接口
- Http 要基于 Socket 实现
- 发起一个 HTTP 请求的过程就是创建一个 Socket 通信的过程
- Httpclient 也是基于 socket 的
- Socket 的出现是为了让程序员更方便地使用 TCP/IP 协议栈,是对 TCP/IP 协议的封装
本文暂时没有评论,来添加一个吧(●'◡'●)