在网页中浏览或者搜索东西是大家的经常性操作,当我们在搜索框中输入关键字,点击搜索,看到了搜索引擎在网页上为我们展示的搜索结果,这一整个的过程,就是一次http请求。
http请求的具体步骤:
域名的解析工作是由DNS服务器来完成的,这个过程就是把域名转换为IP地址,每一个域名都有对应的IP地址,但是由于IP地址是一串数字不方便记忆,所以才有了域名,例如百度的域名是www.baidu.com,那么域名解析就是把这串英文转化为IP地址:202.108.22.5的过程。
初始状态下,客户端和服务器都是关闭状态,客户端主动打开向服务器发送请求,服务端被动打开,客户端准备向服务端发送请求报文,并且选择初始的序列号,客户端进入了同步发送状态,服务器如果同意了客户端的请求,那么服务端就会准备发送确认报文,也创建一个序列号,然后进入同步收到状态,客户端收到了服务端发来的报文,还要再给服务端发送确认报文,此时客户端已经进入建立连接状态,服务端收到确认报文也进入了建立连接状态,然后双方开始通信。
形象记忆:
请求报文包含:请求头,请求行,空行,请求数据
例子:
响应报文包含:状态码,响应头,响应正文。
例子:
浏览器收到了服务器端发来的html代码资源,会对html进行解析,如果遇到了css静态资源,就会向服务器端请求下载。
浏览器先是使用html构建DOM树,然后使用静态资源构建渲染树,渲染树构建完成之后就会把内容绘制给用户。
当服务端把请求内容发送给客户端之后,它就会关闭连接。
这就是http请求的整个过程以及原理。