web中B/S网络架构

1:web中B/S网络架构

2:CDN工作机制和架构

3:负载均衡;

   B/S分别是浏览器/服务器,架构流程为;
    当你访问网站的时候,浏览器发送各种请求给浏览器,服务器返回各种默认资源给用户;
    这当中涉及好多的东西,怕是全讲出来会有被打
    1:域名到ip地址的映射;浏览器发送请求,然后DNS域名服务解析你访问的一个网站域名,例如将我的博客域名解析成ip地址;
    2:负载均衡LB设备选择服务器处理请求;服务器不止一台,需要哪台服务器去解决,就需要负载均衡设备LB确定哪台来处理你的请求;
    3:到数据库,    文件系统,分布式缓存系统取数据;请求可能需要一些数据,文件,这些信息服务器没有,服务器需要去别的地方找,别的地方有三个:数据库,    文件系统,分布式缓存系统;
    4:CDN处理一些静态资源请求;有时候,还需要加载个图片,需要加载渲染的样式css/js什么的,就需要向CDN服务器请求;
 
 其中1涉及的DNS域名解析细致包含十个步骤:
1:浏览器检查浏览器缓存,有的话直接解析;
2:没有就检查操作系统缓存host文件;(去年十二月之前可以更改本机中的缓存host文件,让其解析到外网,实现FQ,现在不行了,当然我不提倡这种做法,这样不安全,例如域名挟持,当你让你访问b站总是跳转到某宝或者某东的付款页面什么的)
3:还没有就去检查本地的DNS服务器查找,LDNS一般是在本地的电信移动或者自己学校,不会很远;
4:还没有就去根域名服务器Root Server请求了,全球只有十三台的;位于美国的;
5:根域名Root Server返回给本地域名服务器LDNS一个查到的国际顶级域名服务器gTLD Server,
6:LDNS向得到的gTLD请求,
7:gTLD查到域名对应的Name Server服务商,电信移动等,域名让Name Server完成;
8:  Name Server查询储存的域名和ip对应关系,包含其TTL一块返回给DNS Server, ;
9:lDNS接收并缓存对应关系,缓存时间是TTL;
10:LDNS最终返回给用户解析结果;
电脑上可以敲一下:win+R,输入cmd
跟踪解析:
nslookup   域名
清除缓存:
ipconfig/flushdns
域名解析方式有五种:域名解析记录主要分为A记录、MX记录、CNAME记录、NS记录和TXT记录。
A记录: 
A代表的是Address,用来指定域名对应的IP地址,如将item.taobao.com指定到115.238.23.241,将switch.taobao.com指定到121.14.24.241。A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址。
MX记录: 
表示的是Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server,如taobao.com域名的A记录IP地址是115.238.25.245,如果MX记录设置为115.238.25.246,是xxx@taobao.com的邮件路由,DNS会将邮件发送到115.238.25.246所在的服务器,而正常通过Web请求的话仍然解析到A记录的IP地址。
CNAME记录: 
全称是Canonical Name(别名解析)。所谓的别名解析就是可以为一个域名设置一个或者多个别名。如将taobao.com解析到chaojijuhui.com,将srcfan.com也解析到chaojijuhui.com。其中chaojijuhui.com分别是taobao.com和srcfan.com的别名。前面的跟踪域名解析中的”www.taobao.com. 1542 IN CNAME www.gslb.taobao.com”就是CNAME解析。
NS记录: 
为某个域名指定DNS解析服务器,也就是这个域名有指定的IP地址的DNS服务器去解析,前面的”gslb.taobao.com. 86400 IN NS gslbns2.taobao. com.”就是NS解析。
TXT记录: 
为某个主机名或域名设置说明,如可以为taobao.com设置TXT记录为”nupt想象之中”这样的说明。
    
其中涉及的东西不变的是url,全部基于http传输协议,ip是网络动态分的,你开个飞行模式再关闭就改变了的;
 
 
第二步中涉及的负载均衡设备LB选择服务器的方式主要分为三种:
链路负载,操作系统负载,集群负载
链路负载:DNS解析成不同的ip,访问的不同的服务器;
操作系统负载:利用操作系统级别的软中断,硬中断,达到负载均衡;(不懂)
集群负载:硬负载F5和软负载LVS+Nginx等包含太多运维和架构知识了,https的普及导致架构修改好多,贴个历史演进;http://www.cnblogs.com/mindwind/p/5339657.html
 
第三部文件读写最最最关键,写不完的,写不完的,到数据库,    文件系统,分布式缓存系统取数据,互联网信息传输瓶颈就是这个;
 
第四步中CDN处理静态资源主要涉及
CDN工作机制和架构
CDN内容分布网络流量分配网络,比镜像智能,相当于 镜像+缓存+整体负载均衡GSLB,工作机制如下:
1:重复上面说的dns解析步骤就不说了,不过这次是为了解析到距离公司最近CDN节点的ip地址;
2:其中涉及公司自己的DNS会将CNAME解析到另外一个域名来指向CDN全局DNS服务器GTM,GTM来确定位置并返回最近的CDN节点 
3:拿到最近CDN节点的ip地址后,就直接访问静态文件,如果最近CDN还没有,CDN再去源站取文件
 
 
 

复杂的web---web中B/S网络架构的更多相关文章

  1. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  2. 高访问量WEB开发中的架构模式,学习从点滴开始

     当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构 ...

  3. HTTP学习二:Web应用中的HTTP

    1 HTTP连接 1.1 TCP连接对性能的影响 TCP三次握手如下图: 如上图,建立一次TCP连接要经过三个步骤.HTTP是建立在TCP之上的,因此TCP连接的性能直接影响HTTP的性能. TCP影 ...

  4. WEB开发中的字符集和编码

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  5. Web Service 中返回DataSet结果大小改进

    http://www.cnblogs.com/scottckt/archive/2012/11/10/2764496.html Web Service 中返回DataSet结果方法: 1)直接返回Da ...

  6. Web标准中用于改善Web应用程序性能的各种方法总结

    提起Web应用程序中的性能改善,广大开发者们可能会想到JavaScript与DOM访问等基于各种既存技术的性能改善方法.最近,各种性能改善方法被汇总成为一个Web标准. 本文对Web标准中所包含的各种 ...

  7. 移动Web 开发中的一些前端知识收集汇总

    在开发DeveMobile 与EaseMobile 主题 的时候积累了一些移动Web 开发的前端知识,本着记录总结的目的,特写这篇文章备忘一下. 要说移动Web 开发与传统的PC 端开发,感觉也没什么 ...

  8. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  9. 转 web项目中的web.xml元素解析

    转 web项目中的web.xml元素解析 发表于1年前(2014-11-26 15:45)   阅读(497) | 评论(0) 16人收藏此文章, 我要收藏 赞0 上海源创会5月15日与你相约[玫瑰里 ...

随机推荐

  1. 【新手向】使用nodejs抓取百度贴吧内容

    参考教程:https://github.com/alsotang/node-lessons 1~5节 1. 通过superagent抓取页面内容 superagent .get('http://www ...

  2. 剑指offer【06】- 旋转数组的最小数字(java)

    题目:旋转数组的最小数字 考点:查找和排序 题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4, ...

  3. spring cloud+.net core搭建微服务架构:服务注册(一)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

  4. 解决AssetBundle包加载预制体时,Shader显示异常的问题

    现象: 预制体上的粒子效果显示为紫色方块. 原因:shader在打成AB包后与指定平台产生相关性,Editor中无法正常读取. 解决办法: 遍历所有加载的对象,重新赋值Shader 代码: //修正s ...

  5. 从前端界面开发谈微信小程序体验

    本文由云+社区发表 作者介绍:练小习,2011年加入搜狐,负责搜狐相册的产品策划与前端开发.2015年后加入腾讯 ISUX (社交用户体验设计部),目前主要负责腾讯云的UI开发工作,专注于人机交互,有 ...

  6. Python中编码和字符串

    编码和字符串 编码 在学习回顾中总结一下ASCII编码.Unicode编码和utf-8编码. 计算机中只能处理数字,我们若要处理文本的话就要将文件转换为数字.所以,这就涉及该怎样转换的问题,也就是编码 ...

  7. java节假日

    public class CalendarTest { //节假日列表 private static List<Calendar> holidayList = new ArrayList& ...

  8. ES6 使用数据类型Set求交集、并集、差集

    前言 ES6新增了数据类型Set,它是一种类似数组的数据结构.但它和数组的不同之处在于它的成员都是唯一的,也就是说可以用来去除数组重复成员. Set本身是一个构造函数用来生成Set数据结构. cons ...

  9. 第一册:lesson twenty seven。

    原文 :Mrs.smith's living room. Mrs.smith's living room is large. There is a television in the room. Th ...

  10. SpringBoot 之Thymeleaf模板.

    一.前言 Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1.JSP 最明显的问题在于它看起来像HTML或X ...