一次 Web 请求到底发生了什么
一次 Web 请求到底发生了什么 一、从输入一个网址开始 当我们在浏览器输入一个网址,然后按下回车,接下来浏览器显示了页面。网速好的话这之间可能就一秒,但在这一秒内到底发生了什么? 本文主要内容是试图记录一个完整 Web 请求的详细过程,从用户在浏览器中输入 URL 地址说起,然后浏览器如何找到服务器地址的过程,并发起请求;分析请求在达反向代理服务器内部处理过程;最后到请求在服务器端处理完成后,浏览器渲染响应页面过程。 大致过程如下: Web请求的工作原理可以简单地归纳为: 浏览器通过 DNS 把域名解析成对应的IP地址; 根据这个 IP 地址在互联网上找到对应的服务器,建立 Socket 连接; 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档; 在服务器端,实际上还有复杂的业务逻辑:服务器可能有多台,到底指定哪台服务器处理请求,这需要一个负载均衡设备来平均分配所有用户的请求; 还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里; 当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(如:css,js或者图片)时又会发起另外的请求,而这些请求可能会在CDN上,那么CDN服务器又会处理这个用户的请求。 客户端与服务器断开。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。 一个 HTTP 事务就是这样实现的,看起来很简单,原理其实是挺负责的