第一步:URL 地址解析

  1. 传输协议 (把信息在客户端和服务器端进行传递)
    1. http:超文本传输协议,传输的内容除了文本,还有可能是 二进制编码BASE64码文件流 等等;
    2. https:比 http 更加安全的传输协议 (传输通道设置加密算法 SSL),一般支付类网站都是 https 协议;
    3. ftp:资源上传协议,一般应用于把本地文件直接上传到服务器端;
  2. 域名
    1. 一级域名 www.baidu.cn
    2. 二级域名 video.baidu.cn
    3. 三级域名 webG.video.baidu.cn
    4. 常用域名:.com国际、.cn中国、.gov政府、.org官方、.net系统、.io博客、.vip、…
  3. 端口号 (根据端口号,找到当前服务器上指定的服务)
    1. 0 ~ 65535 之间;
    2. 不同协议有自己默认的端口号,http => 80、https => 443、ftp => 21,除这几个在书写的时候可以省略,其余的不能省;
  4. 请求资源的路径和名称:
    1. /stu/index.html,一般情况下,如果访问的是 index.html 等,可以省略不写 (因为服务端一般会设置 index.html 为默认文档,当然可以自定义)
    2. URL,数据请求的接口地址 /user/listSEO 优化后的地址 https://item.jd.com/100006038463.html
  5. 问号传参部分 ?xxx=xxx
    1. 客户端基于 get 系列请求,把信息传递会服务器,一般都会基于问号传参的模式;
    2. 页面之间跳转,信息的一些通信也可以基于问号传参的方式 (单页面中组件和组件跳转之间的信息通信,也可能基于问号传参)
    3. 关于传递的内容需要进行编码处理 (处理特殊字符和中文)
      1. encodeURI / decodeURI:只能把空格和中文内容进行编码和解码,所以一般应用这种模式处理整个 URL 的编码;客户端和服务器端都支持这种编码和解码方式;
      2. encodeURIComponent / decodeURIComponent:所有的特殊字符和汉字都进行编码,一般不会整个 URL 编码,只会给传递的每一个参数值单独编码;客户端和服务器端都支持这种编码和解码方式;
      3. escape / unescape:这种方式不一定所有的后台都有,所以一般只应用于客户端自己内部编码;例如:存储 cookie 信息,把存储的中文进行编码和解码,特殊符号也会被编码;
  6. 设置哈希:#xxx

第二步:DNS 解析

  1. 特点:网站中,每发送一个 TCP 请求,都要进行 DNS 解析,一但当前域名解析过一次,浏览器一般会缓存解析记录,缓存时间一般在 1 分钟左右,后期发送的请求如果还是这个域名,则跳过解析步骤 => 这是一个性能优化点;

  2. 真实项目中,一个大型网站,要请求的资源是分散到不同的服务器上的 (每个服务器都有自己的域名解析)

    1. WEB 服务器 (处理静态资源文件,例如:html/css/js 等 的请求)
    2. 数据服务器 (处理数据请求)
    3. 图片服务器 (处理图片请求)
    4. 音视频服务器
    5. 这样导致,需要解析的 DNS 会有很多次;
  3. 优化技巧

    1. DNS PrefetchDNS 预获取;
    2. 例子:京东网站首页加载
      <!-- 让页面加载(尤其是后期资源的加载)更顺畅更快一些 -->
      <meta http-equiv="x-dns-prefetch-control" content="on">
      <link rel="dns-prefetch" href="//static.360buyimg.com">
      <link rel="dns-prefetch" href="//misc.360buyimg.com">
      <link rel="dns-prefetch" href="//img10.360buyimg.com">
      <link rel="dns-prefetch" href="//img11.360buyimg.com">
      <link rel="dns-prefetch" href="//img12.360buyimg.com">
      

第三步:建立 TCP 连接(三次握手)

第四步:发送 HTTP 请求

第五步:服务器得到并处理请求

第六步:断开连接(四次挥手)

第七步:客户端渲染页面

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. 第一步:URL 地址解析
  2. 2. 第二步:DNS 解析
  3. 3. 第三步:建立 TCP 连接(三次握手)
  4. 4. 第四步:发送 HTTP 请求
  5. 5. 第五步:服务器得到并处理请求
  6. 6. 第六步:断开连接(四次挥手)
  7. 7. 第七步:客户端渲染页面