JavaWeb系列读书笔记(一)

该系列笔记的内容根据是许令波老师的《深入分析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地址让用户直接连接服务器,这种属于转发请求。

根据转发请求介质的不同,分为硬件(贵,但性能好)和软件负载均衡。软件负载均衡成本低,但一次访问需要经过多台代理服务器,会很慢。(为什么是多台可能是软件服务器的性能不太行吧)


三、操作系统负载均衡

利用操作系统的软件和硬件中断实现负载均衡

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容