从浏览器输入URL到页面加载的具体流程

参考文章:https://mp.weixin.qq.com/s/Y9nyhX-0N7ChbrWd76UIYQ

过程

  • DNS解析;
  • TCP连接;
  • 发送HTTP请求;
  • 服务器处理请求并返回HTTP报文;
  • 浏览器解析渲染页面;
  • 连接结束;

DNS解析

解析过程就是寻找哪台机器上有你需要的资源,就是将网址到IP地址的转换。

从浏览器输入URL到页面加载的具体流程

DNS缓存
可以看到上面的解析流程十分繁琐耗时,所以有了DNS的缓存。
有浏览器缓存、系统缓存、路由器缓存、IPS服务器缓存、根域名服务器缓存、*域名服务器缓存、主域名服务器缓存。这些缓存将请求过得网址和IP地址都储存下来,如果下次再使用就直接知道。

TCP连接

http协议是基于tcp连接的

HTTP请求

构建HTTP请求报文并通过TCP协议发送到服务器指定端口,请求报文由三部分组成:请求行、请求报头和请求正文。

  • 请求行:GET index.html HTTP/1.1 常用方法:GET,POST,PUT,DELETE,OPRIONS,HEAD
  • 请求报头:允许客户端向服务器传递请求参数的附加信息和客户端自身的信息;
  • 当使用POST,PUT方法时,通常需要客户端向服务端传递数据,这些数据就储存在请求正文中。

服务器处理请求并返回HTTP报文

HTTP响应报文也由三部分组成:状态码、响应报头、响应报文;

  • 状态码由3位数组成,第一个数定义了相应的类别:
    • 1xx:指示信息-表示请求已接收,继续处理;
    • 2xx:成功-表示请求已被成功接收、理解、接受;
    • 3xx:重定向-要完成请求必须进行更进一步的操作;
    • 4xx:客户端错误-请求有语法错误或请求无法实现;
    • 5xx:服务端错误,服务器未能实现合法的请求;

常见状态码:常见的状态码有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500

-响应报文:服务器返回给浏览器的文本信息,通常为HTML、CSS、JS图片等文件。

浏览器解析渲染页面