6、URL与DNS解析
URL组成部分
- 协议(Protocol)
- 定义数据传输规则(如
HTTP
、HTTPS
、FTP
)。 - HTTPS = HTTP + TLS/SSL 加密。
- 定义数据传输规则(如
- 域名(Host)
- 服务器地址(如
www.example.com
),通过 DNS 解析为 IP 地址。
- 服务器地址(如
- 端口(Port)
- 可选,默认 HTTP 为
80
,HTTPS 为443
(如:443
)。
- 可选,默认 HTTP 为
- 路径(Path)
- 资源在服务器上的位置(如
/path/to/page
)。
- 资源在服务器上的位置(如
- 查询参数(Query)
- 以
?
开头,键值对用&
分隔(如?query=param&sort=asc
)。
- 以
- 片段(Fragment)
- 以
#
开头,定位页面内的锚点(如#section
),不发送到服务器。
- 以
浏览器输入url至页面展示过程
-
DNS 解析:浏览器检查本地缓存(浏览器缓存-系统缓存-路由器缓存),若无则向本地DNS服务器递归查询,获取对应IP
-
建立 TCP 连接(三次握手):客户端发送SYN;服务器发送SYN-ACK包;客户端发送ACK包
-
*SSL/TLS 握手(HTTPS 场景):客户端发送支持的加密套件列表;服务器选择加密方式并返回证书;客户端验证证书有效性;交换随机密钥生成对称加密会话
-
发送 HTTP 请求:客户端向服务器发送对应的url的GET请求
-
服务器处理请求:解析请求路径和参数;执行服务器端脚本;生成动态HTML内容;添加响应头;
-
接收 HTTP 响应:浏览器解析服务器状态响应码
-
解析渲染页面
DNS解析工作流程
- 浏览器检查本地缓存:
- 浏览器缓存,若TTL未过期直接返回IP
- 操作系统缓存,hosts文件中或内存中DNS缓存
- 家庭路由器缓存,请求被转发到本地路由器,检查对应DNS缓存
- ISP的DNS服务器处理(互联网服务提供商的递归解析器)
- 根域名服务器
- 顶级域(TLD)服务器查询
- 权威DNS服务器查询