从Web页面请求的过程看网络协议
1.准备阶段
- DHCP,UDP,IP 和以太网
本地电脑与网络连接时,需要有IP地址,本机运行DHCP协议,从本地DHCP服务器取得一个IP地址等信息。 (假设DHCP服务器运行在路由器中)
D
H
C
P
请
求
过
程
如
下
(
广
播
)
:
\color{red}{DHCP请求过程如下(广播):}
DHCP请求过程如下(广播):
-
DNS 和 ARP 协议
DNS解析:浏览器会根据输入的URL去查找对应的IP地址
ARP查询:前面DHCP协议取得了默认网关(IP地址),但仍然不知道网关路由器的MAC地址,需要通过ARP查询。
- ARP查询报文(目的IP,默认网关) ——> 以太网帧(广播目的地址)
D N S 解 析 过 程 如 下 : \color{red}{DNS解析过程如下:} DNS解析过程如下:
1.查询浏览器缓存(浏览器会保存一段时间内访问过的网址的DNS信息)
2.调用操作系统缓存
3.发送DNS查询报文DNS查询报文 ——> UDP报文 ——> IP数据报 ——> 以太网帧 ——> 至网关路由器
4.如果网关路由器也没有,那么DNS请求就会发送至本地DNS服务器
5.根域名服务器
6.若以上都找不到,则域名不存在
2.进行TCP连接
浏览器取得域名对应的IP地址,向服务器发送TCP连接请求,TCP连接经过三次握手。可以生成TCP套接字,该套接字用于向www.baidu.com发送HTTP请求。
3.浏览器发送HTTP请求
建立连接后,浏览器给服务器发送一个HTTP请求,方式为GET
4.服务器处理请求
服务器解析请求头部,生成一个响应头部和具体的响应内容
5.浏览器解析渲染页面
- 浏览器显示HTML
- 浏览器向服务器发送请求获取嵌入在HTML中的对象
- 浏览器发送异步请求
6.关闭TCP连接
当数据完成请求到返回的过程之后,根据 Keep-Alive 属性可以选择是否断开连接
(HTTP/1.1 一般支持同一个TCP多个请求,HTTP/1.0 完成一次请求就断开)