WEB 请求过程

1:HTTP请求和建立一个Socket其实没有太大的区别,只不过outputStream.write的字节码写的数据格式,要符合HTTP,浏览器在创建socket连接之前,要通过DNS解析出ip地址,在通过这个IP地址和默认的端口80,与原创服务器建立socket连接。浏览器根据这个url组装成一个get类型的Http请求头。通过outputSream.write发送。远程服务器,通过inputStram.read读取,服务器等到返回结果,最后断开连接。

HttpClient 是一个很好的开源的发送Http的工具包,Linux下就是 crul   + url    就可以发送一个请求了。

DNS域名解析过程:

1:首先浏览器会在缓存找有没有对应域名解析过的ip,如果缓存中有,那么这个过程就结束。浏览器缓存也是有限制的,浏览器缓存大小和浏览器缓存时间限制

2:上一步,没有找到,会到操作系统的缓存找,看有没有这个域名对应的DNS解析结果。也可以在 Linux上 /etc/hosts 和windows 上C:\Windows\System32\drivers\etc\hosts  配置要解析域名对应的ip。当解析到配置文件中某一个域名的时候,操作系统会缓存这个解析的结果,当然了也是受缓存大小和域名失效时间限制的。

3:上一步,没有找到,会将域名发送到本地的域名服务器进行解析。想查看本地的域名服务器,windows下可以通过:ipconfig / all 查看

Linux 查看:cat /etc/resolv.conf

 

本地区的域名服务器就是:本地互联网接入的一个DNS解析服务,例如:如果是是学校接入的网络,那么这个dns服务器就在学校附近,如果是接入的小区网络,那一般是电信,联通,也就是spa,这个dns服务器就会在我们城市的某一个角落里。这个缓存的解析结果,受到域名失效时间限制,一般不会受空间大小的现在。基本上大部分的域名解析在这里完成。

4:如果本地去域名服务器,依然没有命中的话,那么就会去Root Server 域名服务器去解析。

5:根域名服务器,会返回给本地域名服务器一个主域名服务器的地址。gTLD server 全球只有13台,它是国际顶级域名。

6:LDNS会想上一步返回的主域名服务器发送请求,解析。

7:接受请求的gTLD server 会去找对应的Name Server 就是注册这个域名名的供应商。

8:Name Server 域名服务器,会去找对应域名对应的ip,找到对应映射的值后,返回结果和TTL值,发送给DNS Server 域名服务器

9:根据返回的域名对应的ip和ttl,local DNS SERVER 会缓存这个值的。

10:解析的结果返回给用户,本地缓存就会缓存这个值,时间就是有ttl来控制了

这个只是简单的描述一下域名解析的过程,当然了,实际情况,会比这个更加复杂。

CDN:内容分布网络,一个网络架构,让用户可以就近取得所需的内容,提高网站的访问相应速度。cdn是以缓存网站中静态数据,入js,css,图片和静态页面等数据。用户从主网站获取动态数据后,再在从cdn上下载静态数据。从而加快网页数据内容的下载数独。

1:访问静态文件,发送请求,Local Dns 解析,最终到这个域名注册的服务器解析。

2:dns服务器通常会把它canme 解析到另一个域名,而这个域名最终会被指向cdn全局种的dns负载均衡服务器

3:在由gTM分配这个用户,离得最近的cdn节点。

4:拿到这个解析,去访问静态文件,如果不存在,就会去源网站获取,在返回给用户。

上述讲解后,要说一下负载均衡:有三种

1:链路负载均衡

2:集群负载均衡

3:操作系统负载均衡

 

链路负载均衡,就是上面讲解的dns解析,这个解析可以控制,解析到不同的应用服务器上,这个有一个很明显的缺点,就是一旦某一个服务端挂了,那么这个对应ip对应的域名就不能访问了,然后缓存的域名没有得到及时的更新的话,就会导致一直用不了服务。

集群负载均衡,分为硬件集群和软件集群,硬件集群,一般用一台专门的硬件设备转发请求。软件集群的话,成本低,但是会增加网络延时,一般网站忽略它吧。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值