从URL输入到页面展示

全局概念

URI名叫统一资源定位符,用于定位互联网上的资源。URL是URI的一种,一般在操作页面用URL。

  1. 用户请求远程资源

  2. 浏览器查找远程资源,打包用户请求并发送。

  3. 服务器根据用户请求的资源路径及附加参数,配合自身逻辑生成相关内容,发送到浏览器。、

  4. 浏览器解析结果,呈现直观的方式。

    具体过程

  • 第一步:浏览器输入URL
  • 第二步:域名解析,给DNS服务器一个域名,它给你返回一个IP地址(局域网IP),DNS用来管理域名和IP的对应关系,可以理解为’键值对’。
    域名解析的流程:
    
    1. 浏览器缓存— 浏览器会缓存DNS记录一段时间
    2. 系统缓存 — 从Hosts文件查找是否有该域名和对应IP
    3. 路由器缓存 — 一般路由器也会缓存域名信息
    4. ISP DNS缓存 — 比如到电信的DNS查找缓存
    5. 如果都没有找到,则向根域名服务器查找对应IP,根域名服务器把请求转发到下一级,直到找到为止。
  • 第三步:浏览器处理。
    1. 浏览器HTTP打包请求
    2. 创建TCP链接
    3. 浏览器发送请求
  • 第四步:服务器处理
    1. Web Sever处理请求,是系统里用来处理请求的软件,web服务器用于接受用户的Request交给网站代码,用来管控和承载请求。常见的web服务器有Apache、Nginx、IIS、Lighttpd。
    2. 服务器响应请求,通过MVC(模型视图控制器),将HTML字符串发送给浏览器。
  • 第五步:浏览器解析,当解析到link标签后,重新发送请求获取CSS,当解析到script标签后,发送请求获取JS,并执行代码,当解析到img标签后,发送请求获取图片资源。
  • 第六步:绘制网页,浏览器根据HTML和CSS生成渲染树,绘制到屏幕上,而JS会生成DOM树去被执行。
  • 第七步:处理页面渲染资源和异步请求。