摘要:
1. Netty中的缓冲 在Netty中并没有使用Java自带的ByteBuffer,而是自己实现提供了一个缓存区来用于标识一个字节序列,并帮助用户操作原始字节或者自定义的POJO。 Java NIO的ByteBuffer问题 长度固定,不能动态扩展和收缩 只有一个标识位置的指针,读写时要手动调用相 阅读全文
摘要:
1. Channel Channel是Netty的核心概念之一,它是Netty网络通信的主体,由它负责同对端进行网络通信、注册和数据操作等功能。 1.1 工作原理 如上图所示: 一旦用户端连接成功,将新建一个channel同该用户端进行绑定 channel从EventLoopGroup获得一个Eve 阅读全文
摘要:
说明 Vue、Grunt、Webpack的知识请看官方网站 Grunt Tasks:构建、开发调试、打包,命令:grunt build,grunt default,grunt zipall。。。 Webpack:编译Vue、压缩文件 http2:启动http/2服务,命令 node http2.js 阅读全文
摘要:
1 Proactor和Reactor Proactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。 I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图: 1.1 select,poll,epol 阅读全文
摘要:
问题原因 跨域是指从一个域名的网页去请求另一个域名的资源。浏览器出于安全的考虑,不允许不同源的请求: 解决方法 CORS CORS是一个W3C标准,全称是"跨域资源共享"(Cross origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 阅读全文
摘要:
1 HTTP协议协商 1.1 NPN NPN:Next Protocol Negotiation,是由Google公司开发的用于SPDY进行协议协商扩展。 协商过程: 服务端在收到客户端的client hello后,把自己支持的协议通过Server Hello 发送给客户端 客户端拿到清单后,选择一 阅读全文
摘要:
1 Java IO 1.1 Java IO 1.1.1 IO IO,即输入(Input)输出(Output)的简写,是描述计算机软硬件对二进制数据的传输、读写等操作的统称。 按照软硬件可分为: 磁盘IO 内存IO 网络IO 按照处理的方式可分为: 同步IO 非阻塞IO 异步IO 按照数据类型可分为: 阅读全文
摘要:
1. Netty基础知识 1.1 Netty出现的原因 Java NIO 太难用,存在BUG(如Epoll Bug) 基于第一点,大多数高性能服务器被C和C++盘踞 同样基于第一点,Java NIO编程门槛高 业界其他的NIO框架不成熟 1.2 Netty Netty是由JBOSS提供的一个Java 阅读全文
摘要:
1 HTTP1.0/1.1与HTTPS的不足 1.1 HTTP1.0/1.1不足 单路连接 HTTP 协议的最大弊端就是每个 TCP 连接只能对应一个 HTTP 请求,即每个 HTTP 连接只请求一个资源,浏览器只能通过建立多个连接来解决。此外在 HTTP 中对请求是严格的先入先出(FIFO)进行的 阅读全文
摘要:
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击。 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据,比如密码: 1.2 篡改数据 攻击者可以修改转账账户、金额等进行非法交易。 1.3 仿冒站点 攻击 阅读全文