首页 > 基础资料 博客日记
一次HTTP请求
2025-06-25 22:00:01基础资料围观11次
当在浏览器地址栏输入网址并回车后,浏览器会通过以下步骤加载网页:
域名解析(DNS 查询)
- 缓存层查找:浏览器首先检查本地缓存(如浏览器缓存、系统缓存)、hosts 文件以及网络运营商的 DNS 缓存中是否存在该域名的 IP 地址。
- 递归查询:若缓存中未找到对应记录,浏览器会向本地 DNS 服务器发起请求。本地 DNS 服务器会向上级 DNS 服务器(如根服务器、顶级域名服务器)递归查询,最终获取 IP 地址并缓存以备后续使用。
以下是关于浏览器输入URL后发生的事情:
建立 TCP 连接
- 三次握手:浏览器与服务器通过 TCP 三次握手建立连接。客户端发送 SYN 包,服务器响应 SYN-ACK,客户端再发送 ACK 确认连接建立。
- HTTPS 额外步骤:若使用 HTTPS(默认端口 443),还需进行 TLS 握手以协商加密参数和验证服务器身份。
以下是关于浏览器建立TCP连接后发生的事情:
发送 HTTP 请求
- 构建请求:浏览器向服务器发送 HTTP 请求(如 GET/POST),包含 URL、头部信息(如 User-Agent、Cookies)及请求体。23
- 重定向处理:若服务器返回 3xx 重定向状态码,浏览器会自动重新发起请求。2
以下是关于浏览器发送HTTP请求后发生的事情::
优化建议:若网页加载缓慢,可尝试更换 DNS 服务器(如阿里 DNS223.5.5.5或腾讯 DNS119.29.29.29),并清空浏览器缓存或重启设备以提升解析效率。4
当你在浏览器中输入一个网址并按下回车键后,会发生一系列复杂但有序的过程,最终将网页内容呈现在你的屏幕上。
这些过程主要包括域名解析、建立HTTP连接、发送HTTP请求、服务器响应以及浏览器渲染等步骤。下面我将详细解释这些过程:
1. 域名解析: - 浏览器首先会将你输入的域名解析成计算机可理解的IP地址。 - 域名解析的过程会依次检查浏览器缓存、操作系统缓存、电信运营商缓存以及公共DNS缓存。 - 如果在所有缓存中都找不到对应的IP地址,浏览器会向DNS服务器发出请求,DNS服务器会从根服务器、顶级域名服务器和权威DNS服务器层层查找,最后返回IP地址。
2. 建立HTTP连接: - 在获取到IP地址后,浏览器会与服务器建立TCP连接,这通常通过三次握手过程来完成。 - 三次握手确保了客户端和服务器之间的连接是可靠的,可以开始传输数据。
3. 发送HTTP请求: - 连接建立好后,浏览器会向服务器发送一个HTTP请求报文,其中包含了请求的资源路径、请求方法等信息。 - 常见的HTTP请求方法包括GET和POST,其中GET方法用于请求网页资源。
4. 服务器响应: - 服务器接收到请求报文后,会处理请求并返回一个HTTP响应报文。 - 响应报文中包含了资源内容、响应状态码等信息。状态码如200表示成功,404表示资源未找到,500表示服务器内部错误等。
5. 浏览器渲染: - 浏览器接收到响应报文后,会对资源内容进行解析并渲染网页。 - 渲染过程包括处理HTML以构建DOM树、处理CSS以构建CSSOM树、以DOM和CSSOM为基础构建渲染树、进行布局计算以及将节点绘制到屏幕上。
6. 断开HTTP连接(不一定会马上断开): - 当客户端和服务器之间数据传输完成后,会通过四次握手过程来断开连接。 - 四次握手确保了双方都已确
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:【学习OR面试】请你介绍一下线程池(1)
下一篇:没有了
相关文章
最新发布
- 一次HTTP请求
- 【学习OR面试】请你介绍一下线程池(1)
- springboot~hibernate实现外键表加载
- 华为 OD 的面试流程。。
- hot100之动态规划下
- 剑指offer-5、两个栈实现⼀个队列
- Spring Boot 使用 Tomcat 作为容器时访问根 context-path 302分析
- dynamic-datasource detect druid publicKey,It is highly recommended that you use the built-in encryption method
- 什么是ollama?如何安装ollama和应用
- JavaSE-08面向对象高级二