HTTP 请求流程

HTTP 的请求流程包括地址解析、封装 HTTP 数据包、封装 TCP 包、建立 TCP 连接、客户端发送请求、服务端响应、服务端关闭 TCP 连接,流程如下:

  1. 地址解析:通过域名系统 DNS 解析服务器域名从而获得主机的 IP 地址。例如客户端的浏览器请求:http://localhost.com:8080/index.html,则可从中分解出协议名、主名、端口、对象路径等
  2. 封装 HTTP 数据包:解析协议名、主机名、端口、对象路径等并结合本机自己信息封装成一个 HTTP 请求数据包
  3. 封装 TCP 包:将 HTTP 请求数据包进一步封装成 TCP 数据包
  4. 建立 TCP 连接:基于 TCP 的三次握手机制建立 TCP 连接
  5. 客户端发送请求:在建立连接后,客户端发送一个请求给服务端
  6. 服务端响应:服务端在接收到请求后,结合业务逻辑进行数据处理。然后向客户端返回相应的响应信息。在响应信息中包含状态行、协议版本号,成功或错误的代码、消息体等内容
  7. 服务端关闭 TCP 连接:服务端在向浏览器发送请求响应数据后关闭 TCP 连接。但如果浏览器或者服务端在消息头中加入了 Connection:keep-alive,则 TCP 连接在请求响响应数据发送后仍然保持连接状态,在下一次请求中浏览器可以继续使用相同的连接发送请求。采用 keep-alive 方式不但减少了请求响应的时间,还节约了网络带宽和系统资源
相关推荐
Lynne3091 小时前
工业网络,到底该集中还是自治?
网络·架构·数据
鱼月半3 小时前
两台电脑直连网络不通怎么办?
linux·网络协议
光电笑映3 小时前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
mengge.cloud5 小时前
0917Docker 小白实验教程(理论+实操)
linux·服务器·网络·docker
Thomas.Sir7 小时前
第13课:PyTorch|经典CNN网络模型从零复现【从LeNet到VGG的逐行实现】
网络·pytorch·cnn
en.en..7 小时前
网络分层封装 与 TCP粘包的因果关系
网络·单片机·嵌入式硬件
布莱克6057 小时前
HTTP 状态码详解:从分类到实战
计算机网络·http·状态码
IMPYLH8 小时前
HTML 的 <slot> 元素
前端·网络·html
星恒讯工业路由器9 小时前
“铸链计划”第三批启动,工业5G产品从“有”到“优”的淘汰赛开始了
网络·物联网·智能路由器·工业物联网·铸链计划·工业5g·工业路由器选型
StevenSurpass9 小时前
打印业务彻底解耦:FastPrintAgent 统一 JSON 模型 + FastReport 引擎的设计与落地
mqtt·http·中间件·打印·fastreport