《深入分析Java Web技术内幕》读后感之1-web请求过程

HTTP     DNS     CDN

基于http 精髓为url用来资源定位

DNS域名解析 CDN静态资源缓存

发起请求:dns解析出地址并和80端口建立连接 然后浏览器发送请求到服务器

http请求过程就是建立socket通信过程

http解析 包括 1 请求头 2 响应头 3 状态码

http head中的可选值 no-cache 表示所有内容不会被缓存

DNS域名解析过程

当一个用户在浏览器中输入www.taobao.com时,NDS解析将会有大概10个步骤,过程如下:

第一步:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束(域名缓存的时间是通过TTL属性来设置的);

第二步:如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果,在Windows中是通过C:\Windows\System32\drivers\etc\hosts文件来设置的,你可以将域名指定到任何能够访问的IP地址,Linux中是在\etc\hosts文件中设置的;

注:前面两步都是是本机中完成的,如果现在还无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。

第三步:我们的网络配置中都会有DNS服务器地址(Windows使用ipconfig /all命令查看,Linux使用cat /etc/resolv.conf命令查看),前面两个过程无法解析时,操作系统会把这个域名发送给网络配置中设置的LDNS,也就是本地区的域名服务器,这个DNS通常是给你提供互联网服务接入者,如电信、学校、公司等,通常是在一个城市中,不会很远,大部分的域名解析到这里就完成了;

第四步:如果LDNS仍然不能解析,这时候LDNS就会到Root Server域名服务器请求解析;

第五步:根(RDNS)域名服务器返回给本地域名服务器(LDNS)一个所要查询的主域名服务器(gTLD是国际顶级域名服务器,如.com、.cn等)的IP地址;

第六步:本地域名服务器向根域名服务器返回的主域名服务器发送请求;

第七步:接受请求的主域名服务器查找并返回对应的Name Server域名服务器的IP地址,这个Name Server通常就是你注册的域名服务器,如你在某个域名服务提供商申请的域名,则这个域名解析就由这个域名提供商的服务器来完成;

第八步:Name Server域名服务器会查询存储的域名和IP的映射关系表,连同一个TTL值返回给LDNS域名服务器;

第九步:LDNS得到该域名对应的IP和TTL值后,会缓存这个域名和IP对应的关系,缓存的时间由TTL值来控制;

第十步:把解析的结果返回给用户,用户根据TTL值缓存在本地缓存系统中,域名解析过程结束。

--------------------- 本文来自 依韵_ 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Alexshi5/article/details/79452610?utm_source=copy

CDN的工作机制(镜像、缓存、负载均衡)可扩展、安全性、可靠性

CDN架构: 返回给离这个访问用户最近的节点

使用CDN加速的请求过程

        一个用户要访问某个静态文件,首先要向LDNS服务器发起请求,经过几次解析之后,这时LDNS通常会把它CNAME到另外一个域名,这个域名最终会被指向CDN全局中的DNS负载均衡服务器,再由这个GMT来最终分配返回给离这个访问用户最近的CDN节点,用户拿到域名解析结果之后,就可以直接去这个最近的CDN节点访问静态文件了,如果这个节点中所请求的文件不存在,就会再回到源站去获取文件 ,然后再返回给用户。

3、负载均衡

        通常有三种负载均衡:链路负载均衡、集群负载均衡、操作系统负载均衡,DNS解析就属于链路负载均衡,集群负载均衡一般分为硬件负载均衡和软件负载均衡,硬件负载均衡一般使用一台专门的硬件设备来转发请求,造价可能会比较高昂,软件负载均衡使用成本比较低,但是访问请求需要经过多次代理,会增加网络延迟,最后一种操作系统负载均衡则是利用操作系统级别的软中断或者硬件中断来达到负载均衡,如可以设置多队列网卡等来实现。

4、CDN动态加速

        它的技术原理就是在CDN的DNS解析过程中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有请求调度到选定的这条路径上回源,从而加速用户访问的效率,如下图:

猜你喜欢

转载自blog.csdn.net/weixin_41395565/article/details/82968974