当在浏览器中输入一个网址后,按下回车时,会触发一系列的过程
1.域名解析
首先,浏览器会通过dns(域名系统)将你输入的域名解析成对应的ip地址。如果该域名已经在浏览器的存缓中,则直接使用缓存的ip地址,否则,浏览器会发起dns请求来获取ip地址。
2.建立连接
浏览器与目标服务器建立tcp连接。通常情况下,这是一个三次握手四次挥手的过程,以确保双方批次都准备好进行数据传输。握手成功后,建立起一个稳定的数据 传输通道。
3.发送http请求
浏览器向服务器发送一个http请求。这个请求包含了请求方法(get post等)、请求的资源路径、http版本号以及其他一些有关请求头的信息
4.接收HTTP响应
服务器接收到浏览器的请求后,处理并返回一个HTTP响应。这个响应包含一个状态码(200表示成功,404表示未找到资源等等)、响应头信息和响应体(一般时网页的HTML代码)
5.处理响应内容
浏览器接受到服务器的响应后,开始解析HTML代码。同时,浏览器会并行地发起请求来获取页面中引用其他的资源(如css文件,js脚本、图片等)
6.渲染页面
浏览器将解析后的HTML代码构建成DOM数,并将css样式应用到DOM数上生成渲染数。最后,根据渲染数计算没个元素的布局和位置,绘制到屏幕上,呈现出完整的网页
7.关闭连接
在页面加载完毕后,浏览器会根据具体情况选择是否断开与服务器的TCP连接。对于有持久连接的HTTP/1.1或更高版本,可以在同一个连接上继续发送和接收多个请求和响应。