HTTP 详解:一次请求背后发生了什么?

HTTP 详解:一次请求背后发生了什么? 在 Web 开发中,HTTP 几乎无处不在。 浏览器访问一个页面,前端调用一个 API,PHP、Java、Go 服务之间进行 RPC,下载文件,提交表单,这些场景背后都可能使用 HTTP。 但很多开发者真正理解的 HTTP 只是: GET /users POST /login 200 OK Content-Type: application/json 如果继续往下追问: 浏览器输入一个 URL 后,到底发生了什么? 就会涉及 DNS、TCP、TLS、HTTP、连接复用、请求报文、响应报文、缓存等多个环节。 理解这些内容之后,很多常见问题都会变得容易: 为什么第一次请求比较慢? 为什么 HTTP/1.1 需要 Keep-Alive? HTTP/2 为什么能够同时处理多个请求? Cookie 和 Session 到底是什么关系? 304 是什么意思? 为什么 API 经常返回 401、403、404、409? HTTPS 到底保护了什么? HTTP 和 Socket、TCP 又是什么关系? 本文从一次实际请求开始,把这些概念串起来。 1. HTTP 到底是什么? HTTP(Hypertext Transfer Protocol,超文本传输协议)是一个应用层的请求/响应协议。 它的核心模型非常简单: Client │ │ HTTP Request ▼ Server │ │ HTTP Response ▼ Client 客户端发送 Request,服务端返回 Response。...

2023年08月01日 · 7 min · Leanku