Java 注解入门

注解(Annotation),也叫元数据。是一种代码级别的说明。JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

Read More

IO 流的一些优化

Java 中,IO 流的 read 和 write 方法都是消耗系统资源的操作,多数操作系统在系统级进行了优化,比如在进行写文件的时候,先将字节存储到内核缓冲里,当流关闭或刷新时,再将内核缓冲的内容写入磁盘。

关于系统级的优化,这里不深入了,整理一下应用中 IO 的优化知识,主要是缓冲流的一些注意点。在 Socket 编程以及文件的读写操作等,缓冲流尤为重要。

Read More

HTTP 缓存

一次网络通信,也许会有多个缓存,从数据库缓存,服务器缓存,代理服务器缓存,中间服务器缓存,到本地浏览器缓存等,一路缓存下来,不仅减轻服务端的压力,本地用户体验也流畅了。

HTTP 的缓存是在请求/响应头里控制的,不同版本的 HTTP 协议,缓存配置字段也有些区别。

Read More

SSH 使用以及与 HTTPS 的对比

HTTPS 与 SSH,他们都是网络通信的协议,主要作用都是加密网络通信数据,他们之间的区别广义上讲,差不了多少,以至于有人把他们比作 苹果和桔子的关系,我们日常使用的 GitHub,在 clone 仓库的时候,也提供了 HTTPS 和 SSH 两种方式,都能 clone 下来。

但 SSH 和 HTTPS 还是不同的,HTTPS 大量用于客户端服务器直接的安全通信,SSH 主要用于两台电脑之间登录、共享数据和协同工作。

Read More

HTTPS 安全机制

使用 HTTPS 时,所有的 HTTP 请求和响应数据在发送到网络之前,都要先进行加密。 HTTPS 在 HTTP 下面提供了一个数据传输级的安全层(SSL or TLS),用来对数据进行加密。

写这篇文章时,看到了一篇很形象的阐述 HTTPS 的安全的故事,故事有趣不枯燥,推荐大家可以直接看看这篇 HTTPS 的故事

Read More

HTTP 授权认证

Web 上对于一些私人数据,获取时需要进行用户认证,即要用户名和密码,才能访问资源。浏览器上可以通过 Cookie 来进行认证,移动客户端没有 Cookie,可以使用 HTTP 原生提供的一些认证机制。

这里介绍两种最常见的 HTTP 认证形式,基本认证(basic authentication)和摘要认证(digest authentication)。

Read More