在浏览器上输入一个网址之后,就可以访问相应的网站,如同打开了新世界的大门一样。那么你有没有想过,当你输入网址按下Enter键之后,在你看不见的地方,都发生了哪些事?
从C/S结构的角度去看,主要发生了以下这些事情:
1.DNS解析
DNS解析的过程就是一个寻找客户端访问的资源所在机器的过程,本质是对用户输入的网址是否合法,以及将合法的网址“翻译”成IP地址。
DNS解析的过程其实是一个递归查询的过程。解析顺序是从网址的一级域名到三级域名(从右至左)
2.TCP连接
建立TCP连接的方式,就是通过“三次握手”来实现的,相信大家都很熟悉,具体过程可以点击链接查看。
3.发送HTTP请求
在完成TCP连接后,客户端向服务器发送请求,请求的格式是请求行、请求头、请求体。其中:
请求行:请求方法+地址+HTTP版本
请求头:包含客户端向服务器传递请求的一些信息
请求体:用于存放请求方法的相关参数数据
4.响应请求
服务器是通过处理客户端的请求并返回HTTP报文的方式来响应请求的。服务器响应的内容与请求内容类似,包括:
响应行:HTTP版本+状态码+状态描述
响应头:与请求头类似,包含了服务器向客户端返回的信息
响应体:服务器返回给浏览器的文本信息,一般包括后端数据以及网页相关文件
5.浏览器解析
浏览器接收到网页文件后,会将这些信息渲染到客户端页面上,并且该过程是一边解析一边渲染的过程,最终会将用户访问的资源呈现在浏览器上。
6.关闭TCP连接
当客户端访问的网页呈现出来后,服务器会关闭连接。