文章目录
1、输入地址(回车前)
当我们开始在浏览器中输入网址的时候,浏览器可能会做一些预处理,已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的URL,来预估所输入字符对应的网站,然后给出智能提示,比如输入了「ba」,根据之前的历史发现 90% 的概率会访问「www.baidu.com 」,
因此就会在输入回车前就马上开始建立 TCP 链接了。对于 Chrome这种变态的浏览器,他甚至会直接从缓存中把网页渲染出来,就是说,你还没有按下「回车」键,页面就已经出来了;
2、浏览器查看缓存(回车后)
2.1如果资源未缓存,发起新的http请求;
2.2如果已缓存,检验是否足够”新鲜”,足够”新鲜”直接提供给客户端,否则发送http请求与服务器进行验证。
检验”新鲜”通常有两个HTTP头进行控制Expires和Cache-Control:
HTTP1.0提供Expires,值为一个绝对时间表示缓存”新鲜”日期;
HTTP1.1增加了Cache-Control: max-age=,值为以秒为单位的最大”新鲜”时间;
PS:关于浏览器缓存可参考:
https://blog.youkuaiyun.com/LANNY8588/article/details/85054338
https://www.sohu.com/a/260358906_658302
https://imweb.io/topic/5795dcb6fb312541492eda8c
https://imweb.io/topic/55c6f9bac222e3af6ce235b9
3、URL解析/域名解析
3.1完整的URL由这几部分构成:协议、网络地址、资源路径、文件名、动态参数,
URL完整格式为:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
例如:https://www.zhihu.com/question/55998388/answer/166987812
协议部分:https
网络地址:www.zhihu.com(依次为 子/三级域名.二级域名.顶/一级域名)
资源路径:/question/55998388/answe