一次完整的 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 进行渲染。

在这里插入图片描述

相关推荐

  1. 完整HTTP请求过程包括哪些内容

    2024-03-20 13:14:01       42 阅读
  2. tomcat处理Http请求流程步骤

    2024-03-20 13:14:01       13 阅读
  3. 有趣经历分享

    2024-03-20 13:14:01       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 13:14:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 13:14:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 13:14:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 13:14:01       18 阅读

热门阅读

  1. 杭州小公司面试

    2024-03-20 13:14:01       16 阅读
  2. 游戏客户端面经

    2024-03-20 13:14:01       20 阅读
  3. unity专题(1)背景图片的设置

    2024-03-20 13:14:01       17 阅读
  4. 各种排序算法原理

    2024-03-20 13:14:01       17 阅读
  5. Git修改提交 --amend

    2024-03-20 13:14:01       15 阅读
  6. im-system学习

    2024-03-20 13:14:01       19 阅读