一、 总体流程概要

baidu01
1、用户在浏览器输出百度地址www.baidu.com,浏览器首先去解析URL。
2、解析URL拿到域名之后,通过本地缓存获取域名对应的IP,如果本地缓存找不到域名对应的IP,则到DNS上获取IP。
3、根据IP和端口与百度服务器建立连接,然后发送HTTP请求。
4、百度服务器接收到请求之后处理请求,然后返回资源。
5、浏览器接收到响应数据执行进行解析和渲染。

二、解析URL

baidu02
URL的结构如上图所示,我们在浏览器只输入www.baidu.com就可以访问百度,是因为浏览器帮我们补充了其他的信息,以及有些信息可以省略。
1、当我们输入www.baidu.com网址时,浏览器帮我们补充了http:// 协议头。
2、user:password 默认可以为空,一般情况下也极少看到需要输入user:password
3、http协议的默认端口是80,当我们不输入端口号时,那么默认的就是80端口。

三、请求传输

baidu03
用户在浏览器访问百度,走的是HTTP请求,HTTP是应用层的协议,具体的传输过程如下:

1、应用层发送HTTP请求,包括了HTTP请求头、请求体等数据。
2、传输层在HTTP的基础上加上TCP头和TCP数据包,TCP头指明:接收端的端口和发送端的端口。
3、网络层在TCP的基础上加上IP头和IP数据包,IP头指明:接收端的IP和发送端的IP。
4、数据链路层在IP的基础上加上了以太网头和以太网数据包,以太网头指明:接收端的MAC地址和发送端的MAC地址,以太网数据包最大是1500字节,如果发送的数据超过了1500字节的话,会进行分包。如果接收端的IP和发送端的IP不在同一个子网,那么这时候接收端的MAC地址就是网关(路由器)的MAC地址。
5、接收端接收到请求数据之后,从底向上层层解包。

打赏
支付宝 微信
上一篇 下一篇