C 语言网络编程 — 轻量级 HTTP 服务器设计与实现
Posted 范桂飓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言网络编程 — 轻量级 HTTP 服务器设计与实现相关的知识,希望对你有一定的参考价值。
目录
文章目录
Tinyhttpd
Tinyhttpd 是一个轻量级的 Web 服务器,由 J. David Blackstone 在 1999 年发布。使用 C 语言编写,源代码只有 500 多行,非常适用于学习并理解 TCP 协议、HTTP 协议以及 HTTP 服务器的设计与实现。
- 完整代码:https://github.com/JmilkFan/tinyhttpd
Tinyhttpd 实现了以下功能:
- 支持 HTTP/1.0 标准;
- 实现了 HTTP Request 解析;
- 实现了 HTTP Response 构造;
- 支持 HTTP Methods GET 和 POST;
- 支持 Perl CGI 程序;
- 支持动态生产 html 页面。
启动 HTTP 服务器
- 安装 Perl CGI 模块。
$ perl -e shell -MCPAN
<cpan> install CGI
- 安装 Tinyhttpd。
$ git clone https://github.com/JmilkFan/tinyhttpd
$ cd tinyhttpd
$ make
#or $ make httpd-debug
- 确保执行程序的权限。
$ cd tinyhttpd
$ chmod +x htdocs/*.cgi
$ chmod 600 htdocs/index.html
-
浏览器访问。http://localhost:8086/
-
简单 Demo,输入 yellow。
软件设计
-
程序流程图,取自(https://hanfeng.ink/post/tinyhttpd/)
-
多进程管道设计图
以上是关于C 语言网络编程 — 轻量级 HTTP 服务器设计与实现的主要内容,如果未能解决你的问题,请参考以下文章