该系列笔记的内容根据是许令波老师的《深入分析JavaWeb技术内幕》加上自己思考形成
B/S架构:
B代表浏览器(Browser)S代表服务器(Server) 浏览器具有统一性,并且B/S架构使用统一的Http协议。导致更高效的开发。统一的Http协议就催生了如Apache、IIS、Nginx、Tomcat、JBoss等服务器
HTTP的特点是采用短暂连接(自己乱起的名字)。所谓遗忘就是客户端和服务器请求一次后完成逻辑就通信断开,不会长时间维持这个连接
发起一个Http请求过程就是建立Socket通信的过程
常见的Http请求头
Accept-Charset 指定客户端接收的字符集
Accept-Encoding 指定接收的内容编码
Accept-Language 你懂的
Host 被请求资源的服务器和端口号 如何www.jianshu.com
User-Agent 客户端的操作系统浏览器等信息
Connection 当前连接是否保持
Http响应头
Server 服务器的类型名称
Content-Type 发送的响应的媒体类型 如text/html; charset=GBK
Content-Encoding/Language 和上面的请求头相对应
Content-Length 内容长度
Keep-Alive 连接的时间
常见的Http状态码
200 请求成功
302 重定向,页面跳转
400 客户端请求语法错误,服务器无法识别
403 服务器接收请求,拒绝服务
404 资源不存在
500 服务器出错了
浏览器缓存
我们在看一些热门帖子的最新回复的时候,总会按下刷新键。但是否想过为什么要刷新呢?这是因为我们页面显示信息内容是浏览器缓存了,经过一段时间(看回复的那十几秒中),可能就会出现服务器和客户端的信息出现不一致(客户端信息落后)的情况。所以采取刷新的方式,向服务器重新发送请求,企图更新最新的数据。实际上发送请求不一定能获得最新数据,因为可能你只是向一个缓存数据的服务器获取缓存数据。这时候刷新就有作用了,因为刷新会导致请求头增加了两个头部 Pragma:no-cache Cache-Control:no-cache
这两个的意思都是不要缓存的意思。 Cache-Control的适应性支持和优先级都比较高(Expires),所以会先听它的话。
DNS服务器和域名解析
域名解析由以下几个步骤完成:
1.查看是否浏览器缓存有对应域名的IP地址 有长度和时间(TTL设定)的限制
2.查看主机的host文件是否有相应的域名IP地址(80%的任务在这完成)
3.查找本地域名服务器LDS(Local DNS Server)
4.gTLD服务器(顶级服务器 如.com/.cn)->对应的Name Server域名服务器(如jianshu.com)最终返回到LDS和本机中进行缓存
注意每一级的DNS服务器可以有多个,可能在任何一台都有备份,解析结果
域名的解析方式
A记录 Address,用来指定域名对应的IP地址,如a.qq.com b.qq.com对应不同IP地址 A记录可以将多个域名解析到同一个IP地址,但不能反过来
MX记录 表示Mail Exchange 是将某个域名下的邮件下的邮件服务器指向自己的Mail Server 比如qq.com对应的IP是123.xxx.xxx.xxx 那么如果MX记录也为123.xxx.xxx.xxx那么@qq.com 就会发送到123.xxx.xxx.xxx的服务器中
CNAME 就是别名 别名就差不多是一个人的小名了,一个aab.com可以有别名叫bba.com这种名字识别转化就是CNAME解析
NS记录 就是为某个域名指定的DNS解析服务器,就是这个域名由专门规定的DNS服务器去解析
TXT记录 为某个主机名或域名写说明 类似代码的注释
CDN架构
CDN架构是为了加快用户获取静态数据的一种网络架构方式,一般数据是存在于一个CDN节点是一个服务器群。由控制服务器及其所管理的一组CDN服务器组成。控制服务器就是这一组服务器中用来与源站获取数据的枢纽和CDN节点中的服务器的管理者。
用户获取数据的流程如下
1.根据上面所讲的DNS解析方式解析域名,然后教给GTM(DNS负载均衡服务器)最终分配用户最终该去哪个最优的CDN节点
2.然后由这个CDN节点来为用户提供下载服务,倘若没有这个数据,CDN节点会向源站去下载数据然后返回给用户
CDN动态加速
这个意思就是你需要从源站获取动态数据,CDN动态加速可以选择一条离用户最近的CDN节点到源站链路最好的路径让用户走,使得下载速度更快。
负载均衡架构
一、链路负载均衡
这个是通过DNS服务器一定的规则动态解析域名的方式实现的。用户名根据动态合理的DNS解析内容直接访问服务器,获取数据 优点:快 缺点:任何一个服务器的变动或其他原因,导致域名解析的失效,都会导致用户无法获得服务。
二、集群负载均衡
这种方式和链路负载均衡有很大不同,上面的是返回IP地址让用户直接连接服务器,这种属于转发请求。
根据转发请求介质的不同,分为硬件(贵,但性能好)和软件负载均衡。软件负载均衡成本低,但一次访问需要经过多台代理服务器,会很慢。(为什么是多台可能是软件服务器的性能不太行吧)
三、操作系统负载均衡
利用操作系统的软件和硬件中断实现负载均衡
网友评论