在浏览器中输入 https://www.baidu.com后会发生什么 ?
步骤如下:
- 系统自动在本地寻找hosts文件,该文件在Sysem32/etc下,如果该文件中已经记录该域名对应的IP地址则直接访问IP,没有的话执行域名解析。域名解析,请求配置的DNS服务器,经过DNS服务器解析后获得一个目标IP地址。
- 准备访问目标IP,通过80号端口和按照Http协议生产一个报文。
- 访问IP,从上层的应用层已经生成的报文到传输层,网络层,物理层,层层装包生成最终报文,最后将数据发送出去。
- 寻找路由,从默认网关到路由器,再到下一跳路由器.......在网络中多次转发,最后到达百度的服务器。
- 找到百度的服务器后等待百度主机的防火墙等等验证。
- 百度服务器接受请求,并从物理网到应用层,层层拆包并检验数据,最后获得最终信息。
- 应用层解析后开始生成对应的HTML文件,装包并将文件数据返回给客户机。
- 主机经过网络的层层转发后收到了百度主机发来的HTML文件,拆包后交给浏览器,浏览器根据HTML文件进行渲染,最后生成页面。
只考虑到网络层的话:
- 根据域名,进行DNS域名解析。
- 拿到解析的IP地址,建立TCP连接
- 发送HTTP请求
- 服务器处理请求
- 返回HTTP报文
- 关闭TCP连接
- 浏览器解析HTML
- 浏览器渲染页面
知识点1:DNS
首先,我们输入的网址是域名。
由于IP地址具有不方便记忆并且不能显示地