1.域名解析:浏览器会首先检查windows系统文件的hosts中是否有该域名的IP地址映射。如果没有,则向DNS服务器请求解析该域名对应的IP地址。DNS服务器会进行缓存查找,如果找不到则进行全局递归查询,最终找到域名的IP地址。
2.TCP三次握手:获取IP地址后,浏览器与服务器建立TCP连接,通过三次握手过程确认双方都可以发送和接收数据。
什么是TCP三次握手?
简单来理解就是为了确保客户端与服务端之间的通信而进行的一系列互相确认的过程。
分别是哪三次握手?
第一次握手
建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认。第二次握手
服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
3.发送HTTP请求:与服务器建立连接后,浏览器发送HTTP请求,请求方式包括GET和POST等,携带请求数据和参数。
4.服务器响应:服务器处理请求并返回响应,包括状态码、响应头和响应体。
5.浏览器解析渲染:浏览器收到响应后,解析HTTP代码并渲染页面,最终在浏览器中展示出来。
6.连接断开:根据HTTP版本不同,连接可能是短连接(HTTP 1.0)或长连接(HTTP 1.1)。