用C编码网站?

时间:2009-03-03 04:04:48

标签: c

我刚刚阅读http://www.meebo.com/关于我们页面,并阅读以下内容: “再加上,我们是少数仍在使用C的人之一!”

考虑到meebo是一个在线聊天客户端,它们如何与C一起使用?他们如何使用C作为后端?它如何与前端互动?例如,假设用户创建了一个新帐户,并且要创建新目录,信息如何从前端到后端?

如果这是一个无效的问题,我很抱歉。

谢谢

编辑1:CGI的入门教程非常棒。我可以从我的图书馆那里拿到任何好书吗?

非常感谢快速响应的人!

5 个答案:

答案 0 :(得分:9)

我不知道meebo是怎么做到的,但鉴于它是聊天软件,他们可能有一个用C编写的自定义服务器来处理实际的消息流量。

但是,Apache和大多数其他HTTP服务器始终能够调用C程序,就像它们可以为某些请求调用PHP,CGI和其他语言一样。有些网站甚至用Lisp编写。

每次都需要编译后端,这与解释语言不同,但这种情况在推出时发生,并且是构建/生产脚本的一部分。

必须谨慎选择C程序运行的权限和用户帐户,当然C网站也会遇到任何其他C程序可能遇到的相同问题,例如缓冲区溢出,段错误,堆栈溢出等。只要您以较低的权限运行它,您就会受到更好的保护,并且它并不比任何其他语言/平台/架构更差。

然而,对于服务器,它仍然被广泛使用 - 我认为是黄金标准。你可以找到很多用Java,C ++和其他语言编写的服务器,但是C似乎只是坚持不懈。

- 亚当

答案 1 :(得分:3)

Meebo使用名为mod_meebo的自定义Lighttpd模块。它没有完全回答你的问题,但我认为你可能会感兴趣。

答案 2 :(得分:3)

我已经将非阻塞HTTP 1.1服务器推送到50行代码(稀疏)或几百(更好),最多约5k(安全)。服务器会将动态共享对象作为模块加载,以处理特定类型的请求。

父代码将处理连接跟踪,保持alives,GET / POST / HEAD请求并将它们提供给在启动时加载的处理程序。当我在嵌入式设备上使用非常小的弯头空间时必须使用某种基于网络的控制面板来实现这一点。特别是控制电源插座的设备。

每个DSO的入口点都是使用的URL和方法定义的(即/ foo的行为方式不同,具体取决于它所服务的请求类型)。

我的小服务器做得很好,可以处理大约150个没有分支或线程的客户端,甚至还有一个漂亮的小模板系统,因此UI人员可以修改页面而无需手持。

我最明显地在任何类型的制作网站上使用这种设置,甚至是带有留言簿的基本hello world主页。

现在,如果我只需要侦听端口80/443,接受具有小POST负载的请求,清理它们并将它们转发给其他客户端......它有点不同。但这是一个特定于任务的服务器假装是一个Web服务器,它不使用C来生成动态页面。

答案 3 :(得分:2)

许多服务器端程序可以在C中完成,更不用说CGI programming了。它们也可能是Using C with MySQL,这很有可能。但是如果没有访问他们的源代码,我们就无法知道他们使用了多少C.

声称他们是“仍然使用C的少数人之一”可能只是一个笑话。至少有this这样的统计数据,我希望如此。

-John

答案 4 :(得分:1)

您可以在C中看到一个包含源代码的网站的好例子:fossil

它使用SQLite作为后端。