gpt4 book ai didi

c - 用 C 语言构建 HTTP 服务器需要了解什么?

转载 作者:行者123 更新时间:2023-11-30 18:19:11 28 4
gpt4 key购买 nike

有人说,为了构建 HTTP 服务器,我应该遵循 RFC 2616标准。没关系,但作为一个全新的 C 开发人员,我想知道我需要哪些模块和技术来实现 HTTP 协议(protocol)来处理 html、css、js 和图像。

我并不是想重新发明井,我只是需要一个学习 C 语言的起点。我的经验是,以项目方式构建有用的东西是学习新东西的最佳方式。

附注如果可能的话,我想从头开始构建它。

最佳答案

HTTP 服务器是一个简单的基于文本的服务器;所有协议(protocol)消息均以纯文本形式发送。此外,它是无状态的(即无需记住有关先前连接的任何信息 - 处理每个请求就好像它是一个新请求一样)。记住这些概念后,您基本上需要了解套接字编程的工作原理(以及如何用 C 语言进行良好的编程)。套接字编程还取决于您所使用的库(一般来说,非 Windows 系统使用 POSIX,Windows 则使用 WinSock2)。

其他功能(HTML、js 等)由浏览器处理。服务器只是将数据发送到客户端(通常通过 TCP,除非您也重新创建传输协议(protocol))。

此外,可以说套接字编程(C 和 C++)的最佳引用是 Beej's Guide

编辑

在非常原始的层面上,HTTP 服务器的伪代码如下所示:

while(1) {
client = accept(); // Receive some connection
recv(client, req); // Receive the request from the client
// ... Do some HTTP request processing ...
send(client, resp); // Send the client the response/data
}

也就是说,我刚刚重新阅读了你的文章,也许套接字编程并不是学习 C 的最佳点。并不是说它不能完成(我认为这也是我开始的地方,尽管现在我看到了很多更简单的路线),但要同时了解语言和网络层则要困难得多。还有许多其他东西需要创建来适应指针、内存管理、结构等的概念。您可以尝试创建简单的文件读取器/写入器,创建某种 list /计算脚本。我只是建议这些,因为套接字 API 对于已经熟悉 C 的初次用户来说看起来很陌生。

关于c - 用 C 语言构建 HTTP 服务器需要了解什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200944/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com