从输入url到页面展现的全过程

作为一道面试经常会问到的题目,看过很多写的很好的博文,整理成自己的笔记
大概来说分为以下几个过程:

  • 输入url地址
  • 应用层进行DNS解析
  • 应用层生成HTTP请求报文
  • 传输层建立TCP连接
  • 网络层使用IP协议来选择路线
  • 数据链路层实现网络相邻节点间可靠的数据通信
  • 物理层传输数据
  • 服务器处理反向传输
  • 服务器返回一个 HTTP 响应
  • 浏览器渲染

而主干的流程又分为:

  • 浏览器构建HTTP Request请求
  • 网络传输
  • 服务器构建HTTP Response 响应
  • 网络传输
  • 浏览器渲染页面

在这里插入图片描述

输入地址

  1. 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。
  2. 对 URL 进行解析,分析所需要使用的传输协议和请求的资源的路径。如果输入的 URL 中的协议或者主机名不合法,将会把地址栏中输入的内容传递给搜索引擎。如果没有问题,浏览器会检查 URL 中是否出现了非法字符,如果存在非法字符,则对非法字符进行转义后再进行下一过程。

(一)DNS域名解析

我们先来了解一下url的组成部分
在这里插入图片描述

  • scheme:代表的是访问的协议,一般为http或者https以及ftp等。 host:主机名,域名,比如www.baidu.com。
  • path:查找路径。比如:www.jianshu.com/trending/now,后面的trending/now就是path。
  • query-string:查询字符串,比如:www.baidu.com/s?wd=python,后面的wd=python就是查询字符串。
  • anchor:锚点,后台一般不用管,前端用来做页面定位的。

为什么要进行DNS解析?
互联网中每一台机器都有唯一标识的IP地址,但是它不好记,所以我们通常通过访问域名来访问目标网站,例如 baidu.com、google.com 等。我们只需记住这些网站的名称,而非它们的 IP 地址。因此,在访问服务器到时候,需要 DNS 解析实现网址和IP地址的转换,从而访问到真正对应IP的服务器。

具体解析过程
DNS解析其实是一个递归的过程
在这里插入图片描述

在这里插入图片描述

输入www.google.com网址后,首先在本地的域名服务器中查找,没找到去根域名服务器查找,没有再去com顶级域名服务器查找,,如此的类推下去,直到找到IP地址,然后把它记录在本地,供下次使用。大致过程就是. -> .com -> google.com. -> www.google.com.。 (你可能觉得我多写 .,并木有,这个.对应的就是根域名服务器,默认情况下所有的网址的最后一位都是.,既然是默认情况下,为了方便用户,通常都会省略,浏览器在请求DNS的时候会自动加上)

DNS缓存
DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IP

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值