美文网首页
JavaWeb系列读书笔记(一)

JavaWeb系列读书笔记(一)

作者: shaclow | 来源:发表于2018-07-15 20:19 被阅读0次

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

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

    三、操作系统负载均衡

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

    相关文章

      网友评论

          本文标题:JavaWeb系列读书笔记(一)

          本文链接:https://www.haomeiwen.com/subject/rwsypftx.html