HTTP、Socket、TCP、UDP的区别与联系

本文深入解析HTTP、Socket、TCP及UDP的区别与联系,探讨各协议的底层原理与应用实践,适用于开发者选择合适场景下的网络通信方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.应用场景

了解并熟悉HTTP、Socket、TCP、UDP的区别与联系, 便于在合适场景下开发.

弄清楚TCP三次握手建立连接,四次握手断开连接等过程。要弄清楚为什么要这么设计。

2.学习/操作

1. 文档

网络协议概论 - 学习/实践_william_n的博客-CSDN博客_网络协议概论

网络协议概论 | Laravel 学院 - 传输层协议[TCP/UDP]

网络协议概论 | Laravel 学院 - HTTP 协议详解

网络协议概论 | Laravel 学院 - Socket 编程(上):套接字底层原理

网络协议概论 | Laravel 学院 - Socket 编程(下):套接字底层原理

在B站看猫片被老板发现?不如按下F12学学HTTP

PHP 使用TCP长连接的一种优化思路 - 学习/实践_william_n的博客-CSDN博客

2. 整理输出

环境

Windows10 64位 专业版

laravel 5.8 / 5.7 

phpstudy v8.0

or

Mac 

Docker

1. TCP

网络/Network - 传输层 - TCP协议

【性能优化】网络编程 - PHP - 使用TCP长连接的一种优化思路

2. UDP

https://blog.csdn.net/william_n/article/details/127606290

3. Socket

位于应用层的应用程序在基于 TCP 协议或 UDP 协议进行通信时,需要用到操作系统提供的类库,这种类库一般称为 API(Application Programming Interface,应用编程接口)。

使用 TCP 或 UDP 时,又会广泛使用到 Socket(套接字)API,Socket 原本是由 BSD UNIX 开发的,但是后来被移植到 Windows 的 Winsock 以及嵌入式系统中。

应用程序利用 Socket,可以设置对端的 IP 地址、端口号,并实现数据的接收和发送:

套接字

而且Socket 有分类:「之后再详细学习」

Unix Socket 和 IP Socket 「TCP Socket 和 UDP Socket」

4. HTTP

https://blog.csdn.net/william_n/article/details/103075219

5. 总结

如果要说一句话:

Socket只是接口,封装传输层TCP/IP协议, HTTP是应用层协议。

区别就是:

TCP,UDP, HTTP都是协议,只不过是不同层上的协议。HTTP协议处于TCP协议之上。

Socket并不是协议,只是一种应用编程接口。

后续整理

...

3.问题/补充

1. HTTP是否必须通过TCP连接?

否定, HTTP是无状态的连接, 需要下层提供面向连接的、可靠的通信协议, TCP刚好满足, 但是满足这个条件的并不是只有TCP协议. 但是目前HTTP底层是通过TCP协议进行通信的~

如: TBD

2. Socket 与 WebSocket的区别?

WebSocket - 学习/实践_william_n的博客-CSDN博客

4.参考

参见文档阅读列表

后续补充

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值