我需要在C中构建一个简单的HTTP服务器。任何指导?链接?样品
答案 0 :(得分:116)
我建议你看一下:A Practical Guide to Writing Clients and Servers
您必须在增量步骤中实施的是:
答案 1 :(得分:82)
我建议你看看tiny httpd。如果您想从头开始编写,那么您需要彻底阅读RFC 2616。使用BSD sockets以非常低的级别访问网络。
答案 2 :(得分:26)
HTTP服务器在概念上很简单:
根据您想要支持的HTTP数量而变得更加困难 - POST更复杂,脚本,处理多个请求等等。
但基础非常简单。
答案 3 :(得分:25)
Mongoose(以前的简单HTTP守护程序)非常好。特别是,它可以在Windows,Windows CE和UNIX下嵌入和编译。
答案 4 :(得分:11)
在端口80上打开TCP套接字,开始侦听新连接,实现this。 根据您的目的,您可以忽略几乎所有内容。最简单的方法是,您可以为每个请求发送相同的响应,这只需要将文本写入套接字。
答案 5 :(得分:11)
请看nweb(Nigel的Web服务器),“一个只有200行C源代码的小型,安全的Web服务器”:
https://drive.google.com/file/d/0B3msld7qnNOhN1NXaFIwSFU2Mjg/view?usp=sharing <击> http://www.ibm.com/developerworks/systems/library/es-nweb/ 击>
这篇文章包括伪代码,解释和评论。
编辑:IBM的链接已经死亡。我已将网页的PDF保存到Google云端硬盘。这是代码下载:https://drive.google.com/file/d/0B3msld7qnNOhSGZGdDJJMmY0VHM/view?usp=sharing
@ ankushagarwal做了一些更改,并在GitHub上传了他的版本: https://github.com/ankushagarwal/nweb
答案 6 :(得分:5)
我写了自己可以使用的。这个工作有sqlite,是线程安全的,并且是用于UNIX的C ++。
您应该能够将其拆开并使用C兼容代码。
答案 7 :(得分:5)
答案 8 :(得分:4)
我建议查看类似lighthttpd的内容。
答案 9 :(得分:2)
http://www.manning.com/hethmon/ - 来自Manning的“Paul S. Hethmon的HTTP图解指南”是一本非常好的学习HTTP协议的书,对于实现它/扩展它的人来说非常有用。
答案 10 :(得分:1)
使用特定于平台的套接字函数来封装HTTP协议,就像Apache后面的人一样。
答案 11 :(得分:1)
有duplicate with more responses。
尚未提及的一位候选人是spserver。