当前位置: 首页 > news >正文

一次完整的 HTTP 请求所经历的步骤

1: DNS 解析(通过访问的域名找出其 IP 地址,递归搜索)。

2: HTTP 请求,当输入一个请求时,建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求,会略微有不同。

3:

  • 客户端向服务器发送请求命令(一般是 GET 或 POST 请求)。客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定 IP 地址的 MAC 地址,然后发送 ARP 请求查找目的地址,如果得到回应后就可以使用 ARP 的请求应答交换的 IP 数据包现在就可以传输了,然后发送 IP 数据包到达服务器的地址。
  • 客户端发送请求头信息和数据。

4:

  • 服务器发送应答头信息。
  • 服务器向客户端发送数据。

5: 服务器关闭 TCP 连接(4次挥手)。这里是否关闭 TCP 连接,也根据 HTTP Keep-Alive 机制有关。同时,客户端也可以主动发起关闭 TCP 连接。

6: 客户端根据返回的 HTML 、 CSS 、 JS 进行渲染。

在这里插入图片描述

相关文章:

  • node.js中常用的命令及示例
  • 「Linux系列」Shell 流程控制if-else/for循环/While循环/until循环/case语句/跳出循环break、continue
  • How to install mongodb on redhat 7.7
  • 《论文阅读》带边界调整的联合约束学习用于情感原因对提取 ACL 2023
  • IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX
  • 云原生相关知识
  • HTML5+CSS3小实例:具有悬停效果的3D闪耀动画
  • 工业相机采图方式、图像格式(BYTE、HObject和Mat)转换
  • 【技术栈】Spring Cache 简化 Redis 缓存使用
  • 入门【网络安全/黑客】启蒙教程
  • 部署dagu_1.12.10+replicadb0.15.1+sqlline1.12
  • Grok-1:参数量最大的开源大语言模型
  • 基于Java+SpringMvc+vue+element实现上海汽车博物馆平台
  • GitHub Copilot+ESP开发实战-串口
  • 现代卷积神经网络
  • springboot+itextpdf+thymeleaf+ognl根据静态模版文件实现动态生成pdf文件并导出demo
  • 网络原理(5)——IP协议(网络层)
  • 【C++】每日一题 452 用最少数量的箭引爆气球
  • JAVA Synchronized对象锁和类锁区别(牛逼)
  • 24.3 分布式综合应用
  • 秦洪看盘|交易型资金收缩,释放短线压力
  • 《中国人民银行业务领域数据安全管理办法》发布,6月30日起施行
  • 开局良好,我国第一季度广告业务收入保持较快增速
  • 司法部:民营经济促进法明确禁止违规异地执法、利用行政或者刑事手段违法干预经济纠纷
  • 4月外汇储备增加410亿美元,黄金储备连续6个月增加
  • 央行:增加科技创新和技术改造再贷款额度3000亿元