简单说:HTTP 选择 TCP,是因为 TCP 能提供 HTTP 所需要的“可靠、有序、面向连接”的传输能力,而 HTTP 本身只关心“请求—响应”的语义,不关心数据怎么在网里传。
下面分点说清楚原因:
HTTP(HyperText Transfer Transfer Protocol)工作在 应用层,它定义的是:
但它不负责:
这些事交给 传输层 做,而 TCP 正好合适。
TCP 保证:
HTTP 请求/响应如果丢包或乱序,网页、接口就会出错。
如果用 UDP,就得自己实现重传、排序,非常麻烦。
HTTP 请求前通常需要:
TCP 的“连接”概念,让通信双方状态清晰,适合请求—响应模型。
TCP 会:
这对 Web 服务非常重要,否则大量 HTTP 请求会直接搞崩网络。
TCP 是“字节流”,HTTP 只需要:
Content-Length、分块传输)设计简单,生态成熟。
UDP:
适合:
但不适合传统 HTTP,因为:
注:现在也有 HTTP/3(基于 QUIC,跑在 UDP 上),但 QUIC 自己实现了类似 TCP 的可靠性,并不是“直接用裸 UDP”。
HTTP 用 TCP,是因为 TCP 帮它解决了“可靠传输”这个最难的问题,让 HTTP 可以只专注请求和响应。
如果你愿意,我也可以帮你画一张
“HTTP → TCP → IP” 的协议分层图,或者讲 HTTP/3 为什么又回到 UDP。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。