1,B/S网络架构描述
B/S网络架构基于统一的应用层协议HTTP来交互数据,HTTP协议采用无状态短链接的通信方式,一次请求完成一次数据交互
采用这种方式可以同时服务更多的用户。
当用户输入url时,DNS把这个域名解析成对应的ip地址,然后在访问此IP地址对应的服务器,向服务器发送一个get请求,由服务器返回默认的数据资源,数据可以为分布式的,一般静态资源存放在CDN服务器中。
CDN(content delivery network):它是构筑在现有的internet上的一种先进的流量分配网络,它可以将网站内容发布到最接近用户的网络边缘,使用户就近取得所需内容。CDN=镜像+缓存+整体负载均衡
2,发起请求
发起一个HTTP请求和建立一个Socket连接区别不大,本质上就是建立Socket连接,java常用的发起Http请求的包:HttpClient
3,HTTP协议解析
常见请求头,响应头,状态码:
4,域名解析
用户发起请求,首先查找系统缓存中是否有DNS解析的结果,windows的缓存文件路径:C:WindowsSystem32driversetchosts,Linux:/etc/named.conf,如果没有再访问Local DNS服务器(DNS服务器由网络提供者提供),如果还是未命中就直接到root Server 域名服务器请求解析,根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD server)
gTLD是国际顶级域名服务器,gTLD返回一个name server域名服务器,再访问这个服务器获得该域名的ip值和TTL值(域名解析缓存的时间由TTL控制)(name server可能有多级,或者一个GTM来负载均衡控制)
5,CDN架构
公司自己的DNS服务器会把请求重新别名解析到CDN全局中的DNS负载均衡服务器,再由GTM最终分配返回离用户最近的节点。
6,负载均衡
常见的负载均衡有:链路负载均衡,集群负载均衡,操作系统负载均衡
(ps:内容来自书《深入分析Java web技术内幕》,归纳备忘)