GoAhead网络服务器是世界上最受欢迎的嵌入式网络服务器,已被嵌入数百种不同的产品和数亿台设备中。GoAhead是一个紧凑、高效的网络服务器,具有简单明了的代码和API。
1. 目录结构
doc:说明文档
package:打包脚本
projects:IDE和Makefile工程
releases:发行包
test:单元测试目录
test/web:单元测试web文档
src/utils:工具程序
src/web:web文档目录
*/inc:头文件目录
*/bin:二进制文件的输出目录
*/obj:目标文件的输出目录
2. 支持的特性
1. HTTP/1.1
2. IPv4和IPv6
3. TLS/SSL
4. 32位和64位支持
5. HTTP Keep-Alive
6. 分块编码传输
7. 服务器端的JavaScript
8. 基本,摘要和基于表单的认证
9. 回话状态存储
10. URI路由和重写
11. 日志
12. 安全沙盒模型
Goahead非常的高效,它以单进程方式运行,事件驱动,非阻塞IO。并且GoAhead非常的占用空间小和运行非常快。
1. HTTP协议实现核心部分
HTTP核心服务。包括HTTP协议处理的服务,socket连接管理和日志功能。
2. 请求路由功能
处理请求的路由功能能够将客户端的请求定向到合适的请求的处理函数。它具有用户的认证,一般的重定向和URI重写功能。
3. 可移植的框架
跨平台,单进程,非阻塞的基于事件驱动的可移植的框架。包括服务于内存分配,安全字符串处理,链表,哈希,指令执行,socket通信,事件,定时器,调试跟踪和日志的功能。
4. 认证框架
可插拔的认证方案,也就是通过libpam制定认证方案。支持基本的,摘要和基于web表单的认证方案。这包括一个基于角色的授权方案,对资源的访问可以控制得比较精细。
5. 会话状态管理
会话状态保存。可以存储每个用户的状态和cookie管理。
6. 动作处理
动作处理器将URI的动作处理绑定到一个C语言函数。
7. 文件处理
文件处理器服务静态内容,例如HTML页面,图片和PDF文件。
8. JavaScript处理器
JavaScript web框架支持服务器端JavaScript。
9. CGI Handler
CGI处理器服务于由外部程序产生的页面。
10. 安全套接字层 (SSL)
安全套接字层协议栈。这是一个虚拟接口,能够有选择性的支持一些SSL服务的提供方案,包括MbedTLS和OpenSSL栈。
本文主要介绍GoAhead的作用和对一些核心模块做了简要的介绍。