浏览器地址栏输入一个 URL 到看到页面发生了什么
URL
url 被分为几个部分
- 首先是访问协议,一般为 http 或 https
- 然后是一个域名
- 然后是目录和文件名
开始
- 浏览器会判断是不是一个合法的网址,不合法的会进入到搜索,合法的网址就会去请求
- 请求之后会去找网址的域名,浏览器通过 DNS 解析对应的 IP 地址
- 首先会进行 DNS 查询
- 浏览器自身缓存的 DNS
- 操作系统的 DNS
- 本地 host 文件
- 都找不到才会去向域名服务器发送请求
- 找到对应的服务器 IP 地址,建立连接,到传输层进行三次握手
- 浏览器缓存 cache
- 强缓存 直接把服务端提供的资源缓存下来
- 协商缓存 由HTTP头部信息中的ETag和Last-Modified字段来判断客户端缓存中的内容是否过期,并决定是否需要从服务器获取最新的内容
- 缓存的位置
- disk cache 硬盘缓存
- memory cache 内存缓存
- 请求资源
- 四次挥手断开链接
- 下载 html,解析 html,绘制一棵抽象语法树
- CSS的OM 回流和重绘
- 解析js,通过解析器,解析出AST抽象语法树,转成字节码,然后通过解释器(JIT)转成机器码010101