我需要建立一个简单HTTP服务器在C。任何指导?联系?样品?

有帮助吗?

解决方案

我建议你看一下微小的httpd 。如果您想从头开始编写,那么您需要彻底阅读 RFC 2616 。使用 BSD套接字以非常低的级别访问网络。

其他提示

我建议您查看:编写客户端和服务器的实用指南

您必须在增量步骤中实施的是:

  1. 让您的基本TCP套接字层运行(侦听端口/端口,接受客户端连接并发送/接收数据)。
  2. 实施缓冲读卡器,以便您可以一次读取一行(由CRLF分隔)。
  3. 阅读第一行。解析方法,请求版本和路径。
  4. 为“Header:value”实现标头解析句法。不要忘记展开的折叠标题。
  5. 检查请求方法,内容类型和内容大小,以确定如何/是否将读取正文。
  6. 根据内容类型实现内容解码。
  7. 如果您要支持HTTP 1.1,请执行“100 Continue”,“keep-alive”,“chunked transfer”等内容。
  8. 添加健壮性/安全性措施,例如检测不完整的请求,限制最大数量的客户端等。
  9. 收缩包裹您的代码并开源:)

HTTP服务器是在概念上简单:

  • 开口80听
  • 当联系,收集一些信息(获得主要的-你可以忽略其余部分现在)
  • 翻译的请求文件请求
  • 打开文件,并把它吐回的客户

它变得更加困难,取决于有多少HTTP你想到支持后是有点复杂,脚本,处理多种请求,等等。

但基本是非常简单。

Mongoose (以前的简单HTTP守护程序)相当不错。特别是,它可以在Windows,Windows CE和UNIX下嵌入和编译。

我写了自己可以使用的。这个工作有sqlite,是线程安全的,并且是用于UNIX的C ++。

您应该能够将其拆开并使用C兼容代码。

http://code.google.com/p/mountain-cms/

HTTP规范 Firebug 对我来说非常有用,因为我必须为我的作业做这件事。

祝你好运。 :)

我建议查看 lighthttpd 等内容。

http://www.manning.com/hethmon/ - "插图指南由Paul S. Hethmon撰写的“HTTP”来自Manning是一本非常好的学习HTTP协议的书,对于实现它/扩展它的人来说非常有用。

使用特定于平台的套接字函数来封装HTTP协议,就像 Apache 背后的人一样

复制了更多回复

尚未提及的一位候选人是 spserver

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top