Open summercloud opened 6 years ago
很久以前理解过一个URL从在浏览器地址栏输入,到呈现页面都发生了什么。前两天碰到一个nginx反向代理的问题,又回想起这个流程,我想是对这个流程理解的还不够透彻,所以特意抽出时间来总结一下。
废话不多说先上图
一个URL从在浏览器地址栏输入,到呈现页面经历了:
DNS解析就是使用你输入的域名:www.kaola.com 去定位真正的ip地址
DNS解析是一个递归查询的过程,具体步骤如下图
**第9步,本地域名服务器拿到ip以后,会存入本地DNS缓存。
客户端根据域名得到相应ip以后开始发送http请求,HTTP请求分为三个部分:TCP三次握手(图一3)、http请求响应信息(图一4、图一6)、关闭TCP连接(图一7)
在客户端发送数据之前会发起tcp三次握手用以同步客户端和服务端的序列号和确认号,并交换TCP窗口大小信息。tcp三次握手的过程如下:
TCP三次握手结束后,开始发送HTTP请求报文
TTP请求报文由请求行(request line)、请求头部(header)、请求主体三个部分组成。如下图所示:
http请求报文发送后,经过nginx服务器转发(图一5)、服务端servlet处理请求(图一6)之后,响应信息会以响应报文的形式返回给客户端。 (图一5步骤后续补充)
TTP响应报文由响应行(request line)、响应头部(header)、响应主体三个部分组成。如下图所示:
状态码规则如下:
当数据传送完毕,需要断开tcp连接,此时发起tcp四次挥手
反向代理即指:将来自客户端的请求转发至内部网络中的服务器进行处理。并将服务器的结果返回给客户端。具体实现步骤如下图:
浏览器解析渲染页面分为一下五个步骤:
by 王潭 Summer
很久以前理解过一个URL从在浏览器地址栏输入,到呈现页面都发生了什么。前两天碰到一个nginx反向代理的问题,又回想起这个流程,我想是对这个流程理解的还不够透彻,所以特意抽出时间来总结一下。
废话不多说先上图
一个URL从在浏览器地址栏输入,到呈现页面经历了:
DNS解析
DNS解析就是使用你输入的域名:www.kaola.com 去定位真正的ip地址
DNS解析是一个递归查询的过程,具体步骤如下图
**第9步,本地域名服务器拿到ip以后,会存入本地DNS缓存。
DNS优化
HTTP请求
客户端根据域名得到相应ip以后开始发送http请求,HTTP请求分为三个部分:TCP三次握手(图一3)、http请求响应信息(图一4、图一6)、关闭TCP连接(图一7)
TCP三次握手
在客户端发送数据之前会发起tcp三次握手用以同步客户端和服务端的序列号和确认号,并交换TCP窗口大小信息。tcp三次握手的过程如下:
HTTP请求响应信息
TCP三次握手结束后,开始发送HTTP请求报文
http请求报文
TTP请求报文由请求行(request line)、请求头部(header)、请求主体三个部分组成。如下图所示:
1. 请求行包含:请求方法、URL、协议版本
2. 请求头部包含请求的附加信息,由 名/值 对组成
3. 请求主体包含回车符、换行符和请求数据,并不是所有请求都具有请求数据
http响应报文
http请求报文发送后,经过nginx服务器转发(图一5)、服务端servlet处理请求(图一6)之后,响应信息会以响应报文的形式返回给客户端。 (图一5步骤后续补充)
TTP响应报文由响应行(request line)、响应头部(header)、响应主体三个部分组成。如下图所示:
1. 响应行包含:协议版本,状态码,状态码描述
状态码规则如下:
2. 响应头部包含响应报文的附加信息,由 名/值 对组成
3.响应主体包含回车符、换行符和响应返回数据,并不是所有响应报文都有响应数据
关闭TCP连接,四次挥手
当数据传送完毕,需要断开tcp连接,此时发起tcp四次挥手
nginx反向代理
反向代理即指:将来自客户端的请求转发至内部网络中的服务器进行处理。并将服务器的结果返回给客户端。具体实现步骤如下图:
nginx的优点
浏览器解析渲染页面
浏览器解析渲染页面分为一下五个步骤:
根据HTML解析DOM树
根据CSS解析生成CSS规则树
结合DOM树和CSS规则树,生成渲染树
根据渲染树计算每一个节点的信息(布局)
根据计算好的信息绘制页面
by 王潭 Summer