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. tensorflow 1.0 学习:参数和特征的提取

    在tf中,参与训练的参数可用 tf.trainable_variables()提取出来,如: #取出所有参与训练的参数 params=tf.trainable_variables() print(&q ...

  2. java字符流操作flush()方法及其注意事项

    java字符流操作flush()方法及其注意事项   flush()方法介绍 查阅文档可以发现,IO流中每一个类都实现了Closeable接口,它们进行资源操作之后都需要执行close()方法将流关闭 ...

  3. centos 7 linux 安装与卸载 tomcat 7

    一.声明 本文采用操作系统版本: Centos 7 Linux系统 版本源:CentOS-7-x86_64-DVD-1708.iso 官网下载地址:http://isoredirect.centos. ...

  4. 不一样的ssm

    这里的ssm不是指的spring+springmvc+mybatis,而是指的spring+springmvc+mongodb,下面我将搭建一个简单的“ssm”框架. 1.新建一个maven项目,骨架 ...

  5. leetcode — two-sum

    package org.lep.leetcode.twosum; import java.util.Arrays; import java.util.HashMap; import java.util ...

  6. 在Windows Server 2008 R2上安装IIS服务

    一.Windows Server 2008 R2 介绍 1.Windows Server 2008 R2 基本概念 2.Windows Server 2008 R2 家族系列 二.VMware虚拟机安 ...

  7. 飞跃式发展的后现代 Python 世界

    飞跃式发展的后现代Python世界 如果现代Python有一个标志性特性,那么简单说来便是Python对自身定义的越来越模糊.在过去的几年的许多项目都极大拓展了Python,并重建了“Python”本 ...

  8. Angular2入门:TypeScript的类 - 参数属性:定义和初始化类成员

  9. NET Core微服务之路:弹性和瞬态故障处理库Polly的介绍

    前言 上一节中我们介绍了Ocelot的常见使用配置,通过json配置文件,实现API网关的请求处理.和一个使用DownStream扩展下游中间件,来实现Http转RPC的简单实现,功能不算强大,但可以 ...

  10. 关于Newtonsoft.Json,LINQ to JSON的一个小demo

    nuget获取Newtonsoft.Json github地址:Newtonsoft.Json public static void Test1() { /* 文本格式如下 代码实现目的: 1.VR ...