浏览器/地址栏:修订间差异
来自运维百科
无编辑摘要 |
无编辑摘要 |
||
| 第3行: | 第3行: | ||
若输入的不是有效的URL,则浏览器会自动搜索功能,打开搜索引擎展示搜索结果。 | 若输入的不是有效的URL,则浏览器会自动搜索功能,打开搜索引擎展示搜索结果。 | ||
否则,浏览器将做以下工作: | 否则,浏览器将做以下工作: | ||
== | == 1.URL解析 == | ||
* 浏览器解析你输入的地址,提取协议(如 https)、域名(如 www.example.com)和路径(如 /index.html)。 | * 浏览器解析你输入的地址,提取协议(如 https)、域名(如 www.example.com)和路径(如 /index.html)。 | ||
* 如果输入不完整(如 example),浏览器可能尝试补全协议(https://)或添加后缀(.com)。 | * 如果输入不完整(如 example),浏览器可能尝试补全协议(https://)或添加后缀(.com)。 | ||
== 2.DNS 查询(域名 → IP 地址) == | |||
* 检查缓存:浏览器先检查本地缓存(如之前访问过该域名),若无则查询操作系统缓存 → 路由器缓存 → ISP 的 DNS 缓存。 | |||
* 递归查询:若缓存未命中,浏览器通过 DNS 服务器(如 8.8.8.8)递归查询域名对应的 IP 地址(如 93.184.216.34)。 | |||
* DNS 层级查询:若本地 DNS 服务器无记录,它会从根域名服务器(.)开始,依次查询顶级域(.com)、权威域名服务器(example.com),最终获取 IP。 | |||
== 3.建立 TCP 连接(三次握手) == | |||
* 浏览器通过 IP 地址和端口(默认 443 用于 HTTPS)向服务器发起 TCP 连接。 | |||
* 三次握手: | |||
客户端发送 SYN 包(同步序列号)。 | |||
服务器回复 SYN-ACK(确认 + 同步)。 | |||
客户端回复 ACK(确认),连接建立。 | |||
== 4.TLS 握手(HTTPS 加密) == | |||
* 若使用 HTTPS,客户端和服务器通过 TLS 握手 协商加密参数: | |||
客户端发送支持的加密算法列表和随机数。 | |||
服务器选择算法并返回证书(含公钥)和随机数。 | |||
客户端验证证书(是否过期、是否受信任等)。 | |||
双方生成会话密钥,后续通信加密。 | |||
== 5. 发送HTTP GET请求 == | |||
* 浏览器发送 HTTP 请求报文,例如: | |||
<nowiki>GET /index.html HTTP/1.1 | |||
Host: www.example.com | |||
User-Agent: Chrome/... | |||
Accept: text/html,application/xhtml+xml</nowiki> | |||
2025年6月21日 (六) 09:45的版本
浏览器地址栏(也称为URL 栏或搜索栏)是浏览器顶部用于输入和显示网页地址(URL)的输入框。它不仅是访问网站的入口,还集成了搜索、历史记录、自动补全等功能。 当我们在浏览器的地址栏,输入内容回车后,浏览器会判断内容格式。 若输入的不是有效的URL,则浏览器会自动搜索功能,打开搜索引擎展示搜索结果。 否则,浏览器将做以下工作:
1.URL解析
- 浏览器解析你输入的地址,提取协议(如 https)、域名(如 www.example.com)和路径(如 /index.html)。
- 如果输入不完整(如 example),浏览器可能尝试补全协议(https://)或添加后缀(.com)。
2.DNS 查询(域名 → IP 地址)
- 检查缓存:浏览器先检查本地缓存(如之前访问过该域名),若无则查询操作系统缓存 → 路由器缓存 → ISP 的 DNS 缓存。
- 递归查询:若缓存未命中,浏览器通过 DNS 服务器(如 8.8.8.8)递归查询域名对应的 IP 地址(如 93.184.216.34)。
- DNS 层级查询:若本地 DNS 服务器无记录,它会从根域名服务器(.)开始,依次查询顶级域(.com)、权威域名服务器(example.com),最终获取 IP。
3.建立 TCP 连接(三次握手)
- 浏览器通过 IP 地址和端口(默认 443 用于 HTTPS)向服务器发起 TCP 连接。
- 三次握手:
客户端发送 SYN 包(同步序列号)。 服务器回复 SYN-ACK(确认 + 同步)。 客户端回复 ACK(确认),连接建立。
4.TLS 握手(HTTPS 加密)
- 若使用 HTTPS,客户端和服务器通过 TLS 握手 协商加密参数:
客户端发送支持的加密算法列表和随机数。 服务器选择算法并返回证书(含公钥)和随机数。 客户端验证证书(是否过期、是否受信任等)。 双方生成会话密钥,后续通信加密。
5. 发送HTTP GET请求
- 浏览器发送 HTTP 请求报文,例如:
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Chrome/... Accept: text/html,application/xhtml+xml
