当一个用户在浏览器输入一个域名,比如www.taobao.com这个URL时,会发生如下操作:
首先,他会请求DNS把这个域名解析成为对应的IP地址;
然后根据这个IP地址去互联网寻找对应的服务器;向这个服务器发送get请求;
由这个 服务器决定返回的数据资源给访问的用户。
在服务器端还会有复杂的业务逻辑: 服务器可能会有很多台,到底指定哪台服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求;
还有请求的数据是存储在分布式缓存还是一个静态文件中,又或是在数据库中;当数据返回时,浏览器解析数据发现还有一些静态资源,比如CSS,JS,或者图片时,
又会发起另外的HTTP请求,这些请求可能会在CDN上,那么CDN服务器又会处理这个用户的请求。
大概就是这么多操作,每一个细节都会影响这个请求最终是否会成功。
来自---许令波老师 《深入分析 Java Web 技术内幕》。