经历流程:
- 浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址;
- 解析出IP地址后,根据IP地址和默认端口,和服务器建立TCP连接
- 浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发给服务器;
- 服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器
- 释放TCP连接,也就是断开TCP连接(四次挥手)
- 浏览器将该html文本并显示内容
三次握手:
- 第一次握手:客户端发送第一个包,其中SYN标志位为1, ACK=0,发送顺序号sequence=X(随机int)。客户端进入SYN发送状态,等待服务器确认
- 第二次握手:服务器收到这个包后发送第二个包,其中包SYN、ACK标志位为1,发送顺序号seq=Y(随机int),接收顺序号ACK=X+1,此时服务器进入SYN接收状态。
- 第三次握手:客户端收到服务器传来的包后,向服务器发送第三个包,SYN=0, ACK=1,接收顺序号ACK = Y+1,发送顺序号seq=X+1。此包发送完毕,客户端和服务器进入ESTABLISHED建立成功状态,完成三次握手。
理解:第一次握手,客户端发起,我要连接了;第二次握手,服务端收到了,给与回应,我收到了;第三次握手,客户端发起,我收到你的回复了。三次握手完毕后,