从URL输入到页面呈现大体经过以下几个过程:
1.DNS域名解析
2.TCP的三次握手连接
3.服务器接受http请求与响应处理
4.TCP的四次挥手断连
一、DNS域名解析
浏览器如何根据域名找到对应的服务器ip地址?主要经过下面几个过程:
1通过浏览器缓存查找DNS缓存,浏览器会通过一定的频率缓存DNS记录
2.浏览器缓存查找不到就会到本地的操作系统里查找
3.路由缓存,路由也会缓存DNS记录
4.ISP的DNS服务器,ISP 是互联网服务提供商(Internet Servier
二、TCP的三次握手连接
TCP位于OSI网络模型的第四层传输层,TCP在传输数据前,必须先建立连接。TCP是双向可以发送和接收的,所以需要三次握手。
TCP的三次握手连接的过程:
1.我们定义先发起请求链接的那端称为Client客户端,被动建立连接的那端为Server服务端。建立链接前,服务端先要处于监听状态lisenter,监听客户端的请求同步。Client客户端首先发送SYN=1,seq=x 给server服务端,然后client客户端连接状态变为syn_sent(发送已同步)状态,等待Server服务端ACK确认。
2.Server服务端监听接收到Client客户端的SYN同步请求后,回复ACK=1,确认信号,ack=x+1,表示同意链接。由于TCP是全双工的,server服务器端也会同步SYN=1,seq=y 表示server服务端向Client客户端发起的链接请求。此时server服务端的链接状态变为syn_recvd(同步已接收)状态,等待Client端的ACK确认。
3.Client客户端接收到Server服务端ACK=1,确认信号ack=x+1后,Client客户链接状态变为established,同时回复ACK=1,确认信息ack=y+1,表示回复Server服务端的SYN请求。Server服务端接收到Client客户端的ACK确认后,链接状态也变为etablished。之后建立完链接后,Client客户端和Server服务端随时可以进行数据传输。
三、http请求
http请求报文由请求行(request Line)、请求头(request header) 、请求体(request body)这几部分组成
1.请求行(request Line)
请求行组成包含以下几个:请求方法 空格 URL 协议版本
请求方法:八个请求方法之一,Post,Get、Delete、Put、Trace、Patch、Options
URL:全球资源统一定位符,即 :// /?组成。
协议版本:http的版本号
2.请求头(request Header)
请求头包含请求的附加信息,由关键字/值对组成。
3.请求体(request body)
请求体主要是请求的参数。
四、http响应
http响应组成:响应行,响应头,响应体
响应行:由协议版本,状态码,状态信息描述
状态码的含义:200: 请求成功,301: 资源被永远转移到其他URL上,404:请求资源找不到,500:服务器内部出错
状态码分类:
1XX:信息,服务器收到请求,需要请求者继续执行操作
2XX:成功,操作被成功接收并处理
3XX:重定向,需要进一步的操作以完成请求
4XX:客户端错误,请求包含语法错误或无法完成请求
5XX:服务器错误,服务器在处理请求的过程中发生了错误
五、TCP的四次挥手断链
1.TCP断链双方都可以发起,我们把先发起端称为Client客户端。开始Client客户端和Server服务端的链接状态都是established状态。client发送FIN给服务端,表示客户端已经没有数据发送给服务端了。此时,客户的链接转态变为FIN-wait1转态。
2.Server服务端接收到客户端的FIN请求后,回复ACK 确认,此时服务端的链接转态变为Close_wait状态,服务端的状态处于半关闭状态,因为客户端不会再向服务端发送数据,但服务端还是可以向客户端发送数据。
3.客户接收到服务端的ACK,链接转态进入FIN_wait2状态。
4.当服务端向客户端发送完数据后,服务端向客户端发送FIN,表示服务端不再向客户端发送数据了,此时服务端的链接状态进入Last_Ack状态,等待客户端最后的ACK确认就可以关闭链接了。
5.客户端接收到服务端的FIN后,发送ACK后进入TIME_wait状态。客户端处于TIME_wait状态要等待2MSL(2倍最大报文段生存时间)后,才进入Closed状态。客户端需要等待2倍的最大报文段生存时间才Closed关闭是要确保的链接能够可靠关闭。防止在此次链接中,由于网络异常导致数据重复发送,端口被重复使用导致数据混淆(确保网络中消除重复数据)。而服务端接收到客户的ACK确认后,链接转态直接进入Closed转态。
TCP协议还有很多知识点,以后的文章会尽快的补上~~~