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.comsrcfan.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. git 撤回放到暂存区的文件

    git reset HEAD filename 如:git reset HEAD test.txt 或者使用 git reset .  撤回所有文件(注意后面还有个.)

  2. web.xml配置web中的key points(下)

    一.配置jsp页面 [jsp-config]中有两个子元素[taglib][jsp-property-group],注意,前者必须出现在后者之前. ①[taglib]替代jsp页面中taglib指令 ...

  3. leetcode — search-insert-position

    /** * Source : https://oj.leetcode.com/problems/search-insert-position/ * * Created by lverpeng on 2 ...

  4. java jdb 调试

    [hadoop@hadoop-01 ~]$ javac -help Usage: javac <options> <source files> where possible o ...

  5. Python丢弃返回值

    函数多个返回值 python的函数支持返回多个值.返回多个值时,默认以tuple的方式返回. 例如,下面两个函数的定义是完全等价的. def f(): return 1,2 def f(): retu ...

  6. [转]angular官网 及 Ant Design of Angular

    https://angular.io/cli https://www.angular.cn/guide/quickstart https://ng.ant.design/docs/introduce/ ...

  7. [转]docker基础详解

    本文转自:https://blog.csdn.net/xsj_blog/article/details/71700032 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  8. 设置防火强开机自启,以及没有成功的tomcat开机自启

    防火墙 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start firewalld.serv ...

  9. 从零开始学安全(十三)●SQL server 2008 R2 安装

    安装过程1.下载并解压 sql_server_2008_r2_enterprise 点击 setup . 2.打开后如图,点击左侧的 安装 ,再点击右边的 全新安装或向现有安装添加功能. 3.安装支持 ...

  10. 【Java每日一题】20170313

    20170310问题解析请点击今日问题下方的“[Java每日一题]20170313”查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; import jav ...