1.域名解析,我们上一篇文章已经讲解了
2.获取相应的IP地址后,建立TCP连接,TCP三次握手。
第一次握手:客户端发送SYN(同步序列编号)包(seq=x)到服务器,并进入SYN-SENT状态,等待服务器的确认
第二次握手:服务器收到了SYN包为了确认客户端的SYN所以发送一个ACK(ack=x+1,已经收到序列号为j的数据包准备接受序列号为j+1的),同时自己也发送一个SYN包(seq=y),此时服务器进入了SYN-RECV状态。
第三次握手:客户端收到服务端的SYN+ACK包,向服务器发送确认包ACK(ack=y+1 seq=x+1),这个包发送完毕客户端和服务端进入ESTABLISHED状态,连接建立成功。
seq:用来标识在TCP发端到TCP收端发送的数据字节流,他表示在这个报文段中的第一个数据字节在数据流中的序号
ack:期待收到的下一个序号,一般是上次已经收到的字节加1.
3.建立起TCP连接后,发送http请求,包括请求头,请求行 ,主要有两种请求方式GET(携带参数较少而且不安全),POST(安全)
4.服务器响应http请求,处理请求,并返回响应,包括状态码,响应头,响应体
5.浏览器解析http代码,渲染页面,并在浏览器中展示出来
6.断开连接,四次挥手