陕西网站建设哪家强,合肥城乡建设局官网,服务周到的做网站,蚂蚁加速器请求格式、响应格式与通信全流程
HTTP协议规定了客户端与服务器通信的标准格式和流程#xff0c;下面用最清晰的方式解析核心内容#xff1a; #x1f527; HTTP请求格式#xff08;客户端 → 服务器#xff09;
POST /api/login HTTP/1.1 → 请求行#xff0…请求格式、响应格式与通信全流程
HTTP协议规定了客户端与服务器通信的标准格式和流程下面用最清晰的方式解析核心内容 HTTP请求格式客户端 → 服务器
POST /api/login HTTP/1.1 → 请求行方法路径协议版本
Host: www.example.com ↗
User-Agent: Mozilla/5.0 │
Content-Type: application/json ├─ 请求头键值对元数据
Authorization: Bearer token123 │
Content-Length: 46 ↘{username:john,password:123} → 请求体传输数据结构解析
请求行包含请求方法GET/POST/PUT/DELETE、资源路径和HTTP版本请求头每行一个键值对描述客户端信息/数据格式等必含Host字段请求体仅POST/PUT方法包含格式由Content-Type指定如JSON/表单数据 HTTP响应格式服务器 → 客户端
HTTP/1.1 200 OK → 状态行协议版本状态码描述
Server: nginx/1.18 ↗
Content-Type: application/json │
Set-Cookie: sessionabc123; ├─ 响应头元数据控制指令
Cache-Control: max-age3600 │
Content-Length: 34 ↘{status:success,user_id:1001} → 响应体实际数据结构解析
状态行包含状态码如200成功/404未找到/500服务器错误响应头控制缓存/数据类型/认证信息等Content-Type必须声明数据类型响应体HTML/JSON/文件二进制等实际传输内容 通信全流程以浏览器访问网站为例 TCP连接建立客户端与服务器通过三次握手建立TCP连接 #mermaid-svg-6NrtqrgKQ2XmSzQ0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .error-icon{fill:#552222;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .marker.cross{stroke:#333333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 text.actortspan{fill:black;stroke:none;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .actor-line{stroke:grey;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .sequenceNumber{fill:white;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 #sequencenumber{fill:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .messageText{fill:#333;stroke:#333;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .labelText,#mermaid-svg-6NrtqrgKQ2XmSzQ0 .labelTexttspan{fill:black;stroke:none;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .loopText,#mermaid-svg-6NrtqrgKQ2XmSzQ0 .loopTexttspan{fill:black;stroke:none;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .noteText,#mermaid-svg-6NrtqrgKQ2XmSzQ0 .noteTexttspan{fill:black;stroke:none;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .actorPopupMenu{position:absolute;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 .actor-man circle,#mermaid-svg-6NrtqrgKQ2XmSzQ0 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-6NrtqrgKQ2XmSzQ0 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 客户端 服务器 SYN SYN-ACK ACK 客户端 服务器 HTTP请求发送浏览器构建完整HTTP请求自动添加必要请求头 服务器处理服务器解析请求→执行业务逻辑→生成响应 HTTP响应返回服务器返回状态码响应头响应体 资源加载浏览器解析响应体 遇到img/script标签 → 发起新的HTTP请求获取资源接收到Set-Cookie → 后续请求自动携带Cookie头 连接关闭默认关闭连接HTTP/1.1可复用连接 关键协议特性
无状态性每次请求独立需用Cookie/Session/JWT维持状态明文传输HTTPS通过SSL/TLS加密解决版本演进 HTTP/1.1持久连接减少TCP握手HTTP/2二进制分帧 多路复用解决队头阻塞HTTP/3基于QUIC协议UDP实现更快连接 深度探索推荐C学习一站式分享