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 方式不但减少了请求响应的时间,还节约了网络带宽和系统资源
相关推荐
深圳市宝华视联14 分钟前
移动示教推车功能介绍
网络·嵌入式硬件·音视频·视频编解码·嵌入式实时数据库
梦難17 分钟前
linux的系统命令
linux·服务器·网络
Java小白笔记18 分钟前
Java中PDF文件导出,生成链路与实现
服务器·网络·oracle
treesforest20 分钟前
前端表单提效实践:基于IP地理位置实现国家区号智能预填
前端·网络协议·tcp/ip·ip定位·ip属地
跨境技工小黎21 分钟前
YouTube联盟营销如何变现?如何利用IP代理提高流量变现效果?
服务器·网络·tcp/ip
瓦学妹26 分钟前
HTTP代理性能分析:如何利用 IPFoxy 快速灵活切换协议?
网络·网络协议·http
Behaviour28 分钟前
Unity 手游网络同步技术
网络·unity·c#·游戏引擎
深念Y1 小时前
# CC-Switch + Claude/Codex 折腾教训记录
运维·服务器·网络·ai·agent·web·ccsiwtch
OpenCloudOS1 小时前
高危|Linux 内核 XFS reflink 本地提权漏洞修复指南
linux·网络·安全
2601_956743681 小时前
上海物联网应用开发技术选型指南:从HTTP/MQTT/Modbus协议适配、平台化架构设计到源代码交付与私有化部署,解析工程落地的关键考量点
物联网·网络协议·http·开发经验·上海