HTTPS简介

背景

HTTP协议想必大家应该有所了解,HTTP是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

但是HTTP在传输过程中的数据都是铭文,在网络上极不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情。 继续阅读

引用计数对象(Reference counted objects)

原文地址

从Netty 4起,对象的生命周期由它们的引用计数来管理,因此,一旦对象不再被引用后,Netty 会将它(或它共享的资源)归还到对象池(或对象分配器)。在垃圾回收和引用队列不能 保证这么有效、实时的不可达性检测的情况下,引用计数以牺牲轻微的便利性为代价,提供了 另一种可选的解决方案。 最值得注意的类型是ByteBuf,它正是利用了引用计数来提升内存分配和释放的性能。这一节 将用ByteBuf来讲述引用计数在Netty中是如何工作的。

引用计数基本原理

一个新创建的引用计数对象的初始引用计数是1。

当你释放掉引用计数对象,它的引用次数减1.如果一个对象的引用计数到达0,该对象就会被 释放或者归还到创建它的对象池。

继续阅读

事务隔离级别

事务简介

事务是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么 就执行该组查询。如果其中任何一条语句因为某种原因无法执行,那么所有的语句都不会执行。即事务内部要么全部成功,要么 全部失败。

事务有四大特性,名为ACID。

  • A – Atomicity,原子性,事务被视为一个不可分割的最小工作单元
  • C – Consistency,一致性,事务总是从一个一致性的状态切换到另一个一致性的状态
  • I – Isolation,隔离性,一个事务所做的修改在提交之前,对其他事务是不可见的
  • D – Durability,持久性,一旦事务提交,则其所做的修改就会永久保存到数据库中

继续阅读