一个网络请求是怎么进行的,涉及到浏览器的运行机制、页面加载流程。
当我们打开一个页面的时候,可以在NetWork面板上看到浏览器发起的网络请求,包括了页面、图片、CSS样式文件以及请求的状态,请求耗时和响应内容等等信息。
实际上,我们输入URL,回车后,浏览器的处理流程如下:
- DNS域名解析,找到找到页面的目标服务器;
- 浏览器和服务器建立TCP链接;
- 浏览器发起http请求;
- 服务器响应http的请求,返回这个页面的HTML内容;
- 浏览器解析HTML代码,并且请求HTML代码中的资源,比如图片,JavaScript和CSS。
- 最后把页面呈现给用户。
建立TCP链接
浏览器与服务器建立TCP链接,有三次握手和四次挥手。
三次握手,是TCP建立的过程,需要浏览器客户端和服务器之间总共发送三个包,来确定链接是否存在。
四次挥手,是TCP断开的过程,需要客户端和服务器之间总共发送4个包来确认确认关闭连接。
建立起TCP链接之后,http服务器会监听客户端发送的请求。
http请求
客户端发送http请求,服务器收到后会进行回复。回复内容包括http的状态,响应消息等等。