接触openssl已经有一段时间了,我读过很多源码,感觉不错的也就那么几个,linux内核是其中之 一,openssl也是其中之一。openssl说白了不是什么功能性的东西,而是提供了一个支撑性的底层框架,本质上和linux内核一样,但是和 apache有区别,apache明确的实现了一个功能,就是web服务器,而openssl中我认为最重要的就是它提供的BIO框架和EVP框架,与其 说openssl是一个ssl的实现不如说ssl只不过是openssl框架的一个demo,本质上openssl提供了一套抽象的IO接口,这就是 BIO,还有一套很容易使用的加密解密接口,这就是EVP,最后证实ssl这个协议使用了上述两类接口,如果从这个意义上讲的话,apache其实也是这 样的,在构建顶层的web服务器之前首先实现了一套apr通用框架,甚至memcahce使用的libevent也是这样,这就是说很多的成功的开源的代 码与其说是一种专用的程序倒不如说包含有一套通用的框架,而这个带代码的原始意义最后退化成了使用这个通用框架的一个实例,最起码我看好的几个开源项目都 是这样。策略和机制分离,可扩展性十分棒,用起来十分灵活。
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273642