参考:https://www.cnblogs.com/yuanzhiguo/p/8119470.html
1、请求发起后,浏览器首先会解析这个域名,首先它会查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。
2、如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地域名服务器。
3、本地域名服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,如果没有,本地域名服务器还要向其他根域名服务器继续发出查询请求报文。
4、在拿到域名对应的IP地址后,会以随机端口(1024~~65535)向WEB服务器程序80端口发起TCP的连接请求,客户端与服务器的TCP链接,采用三次握手。
5、建立TCP连接之后,发起HTTP请求,请求一般分为三部分
请求行
请求头
请求体
6、服务器端收到请求后由web服务器(准确说应该是http服务器)处理请求,诸如Apache等。web服务器解析用户请求,处理用户请求,最后将结果通过web服务器返回给浏览器客户端。
7、关闭TCP链接
为了避免服务器与客户端双方的资源占用和损耗,当双方没有请求或响应传递时,任意一方都可以发起关闭请求。与创建TCP连接的3次握手类似,关闭TCP连接,需要4次握手。
8、浏览器解析资源
浏览器解析获取到的HTML、CSS、JS、图片等等资源。