在浏览器中输入URL(www.baidu.com)后执行的全过程

http 请求过程——当我们在浏览器输入 www.baidu.com,然后回车之后的详解。

一. 域名解析(域名 www.baidu.com 变为 ip 地址)。

1. 浏览器搜索自己的DNS缓存(维护一张域名与IP的对应表),若没有,则搜索操作系统的DNS缓存(维护一张域名与IP的对应表),若没有,则搜索操作系统的hosts文件(维护一张域名与IP的对应表)

2 . 若都没有,则找 tcp/ip 参数中设置的首选 dns 服务器,即本地 dns 服务器(递归查询),本地域名服务器查询自己的dns缓存,如果没有,则进行下面的迭代查询

2.1本地dns服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器的地址。

2.2本地dns服务器向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(保存该区中所有主机域名到IP的映射)地址。

2.3本地dns服务器向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址。

3.本地dns服务器将IP返回给操作系统,同时缓存IP。

4.操作系统将IP返回给浏览器,同时缓存IP。

二. 发起 tcp 的三次握手,建立 tcp 连接。

浏览器会以一个随机端口(1024-65535)向服务端的 web 程序 80 端口发起 tcp 的连接.这个请求(原始的 http 请求,经过原始的 tcp/ip 四层模型层层封装),到达服务器端后,进入网卡,然后进入内核的协议栈(一层一层拨开),然后到达 web 应用程序,最终建立了 tcp/ip 链接。

三. 建立 tcp 连接后发起 http 请求。

四. 服务器响应 http 请求,客户端得到 html 代码。

服务器 web 应用程序收到 http 请求后,就开始处理请求,处理之后就返回给浏览器 html 文件。

五. 浏览器解析 html 代码,并请求 html 中的资源。

六. 关闭TCP连接(四次挥手)

七. 浏览器对页面进行渲染,并呈现给用户。

涉及到的协议

(1) 应用层:HTTP(WWW访问协议),DNS(域名解析服务)

(2) 传输层:TCP(为HTTP提供可靠的数据传输),UDP(DNS使用UDP传输)

(3) 网络层:IP(IP数据数据包传输和路由选择),ICMP(提供网络传输过程中的差错检测),ARP(将本机的默认网关IP地址映射成物理MAC地址)

ps:ARP缓存本局域网内的IP和MAC的映射。如果在本局域网不在缓存中,则广播请求信息,目的主机会以单播形式回送MAC;如果不在本局域网中,则找到本网络的路由器MAC地址,由路由器去找到目的MAC地址。

ping www.baidu.com 用到的协议

DNS, UDP, ICMP, ARP。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值