输入URL
拿百度为例,输入一个 https://www.baidu.com/ ,URL由三个部分组成:协议,域名,端口号。这里的端口号是默认的所以隐藏。这里的协议用的是https协议,端口号是443,还有一些常见的协议,比如http:80,ssh:20,ftp:21,telnet:23等。
缓存
首先浏览器先会到缓存里面去找,如果有就直接打开,如果没有或者缓存过期就对URL进行域名解析。
DNS域名解析
URL所表示的不是最后资源所在的位置,而是为了方便记忆对IP地址的重定向,域名解析的过程实际是将域名还原为IP地址。
- 首先,浏览器会检查hosts文件中是否存在IP地址和域名之间的映射关系,如果有则返回。
- 如果没有浏览器就会查看本地DNS解析器缓存,如果有就返回。
- 如果没有就访问本地DNS服务器,如果有就返回。
- 如果没有就访问更高一级的DNS服务器,最后迭代查询直到找到IP地址。
TCP连接
通过三次握手进行连接。
浏览器向服务器发送HTTP请求。
- 请求行
- 请求属性
- 正文
浏览器接收响应
响应会收到
- 状态码
- 1XX:接收的请求正在处理
- 2XX: 请求正常处理
- 3XX:请求重定向
- 4XX:错误状态码
- 5XX:服务器错误状态码
- 响应头
- 响应正文:主要由HTML、css、js、图片文件组成
页面渲染
在浏览器没有完全接受到HTML时,它就已经开始吧内容显示到页面上来了,不同的浏览器有着不同的显示方法,显示后将HTML加载到浏览器缓存中。
TCP断开连接
四次挥手