从浏览器输入网址 ,点击回车,到页面渲染完毕,经过了一下几个步骤:
1.DNS 解析域名 (找到要去哪里)
2. TCP 三次握手 (找到服务器之后要交流下,征求下服务器意见)
3. 浏览器发出请求 (服务器同意之后,发送请求)
4. 服务器处理请求并返回页面信息 (服务器收到请求之后,把请求内容返回)
5. 浏览器解析渲染 (拿到返回内容,开始渲染页面)
DNS 域名解析
internet上的计算机都是通过IP来定位的,ip指向固定的域名
TCP三次握手
tcp三次握手,在客户端与服务器端建立联系的时候执行
第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个syn包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务端进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
完成三次握手,开始传输数据。
客户端发送请求
请求的几种方式:post,get,put,delete,head,patch,options,connect,trace
服务器处理请求并返回请求所需内容
客户端请求发出后,服务器会返回一个包含http状态码的信息头,用来响应浏览器的请求。
状态码:
1** :信息,服务器收到请求,需要请求者继续执行操作
2** :成功,操作成功接收并处理
3** :重定向,需要进一步操作以完成请求
4** :客户端错误,请求包含语法问题
5** :服务器错误,服务器在处理请求的过程中发生了错误
常见状态码
200 :请求成功
301 :资源被永久转移到其他url
404 :资源未找到
500 :服务器内部错误