English 中文(简体)
用C语言编写网站?
原标题:
  • 时间:2009-03-03 04:04:48
  •  标签:

I was just reading the http://www.meebo.com/ About Us page, and read this line : "plus, we re one of the few still around using C!"

考虑到Meebo是一个在线聊天客户端,它如何与C语言一起工作?它如何使用C语言作为后端?它如何与前端交互?例如,假设用户创建了一个新账户,并且需要创建一个新的目录,信息如何从前端传到后端?

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

谢谢 (Xièxiè)

编辑1:CGI的入门教程很棒。我可以从图书馆借到哪些好书?

谢谢大家的快速回应!

最佳回答

我不知道Meebo是如何做到的,但考虑到它是聊天软件,他们可能有一个用C编写的定制服务器来处理实际的消息流量。

然而,Apache和大多数其他HTTP服务器一直能够像调用PHP、CGI和其他语言一样调用C程序来处理特定请求。 一些网站甚至是用Lisp编写的。

与解释性语言不同,后端每次都必须编译,但这是在发布时发生的,并且是构建/生产脚本的一部分。

所给权限和C程序运行的用户帐户必须仔细选择,当然,C网站也遭受着任何其他C程序可能遇到的问题,例如缓冲区溢出、段错误、堆栈溢出等。只要以降低权限运行它,您就会得到更好的保护,而且它也不比任何其他语言/平台/架构更糟。

然而对于服务器而言,它仍然被广泛使用——我想它是黄金标准。你可以找到很多用Java、C++和其他语言编写的服务器,但C似乎一直存在。

亚当

问题回答

我已经用不到50行(稀疏)或几百行(更好),甚至多达5k(安全)的代码编写过非阻塞HTTP 1.1服务器。这些服务器会加载动态共享对象作为模块来处理特定类型的请求。

父代码将处理连接跟踪,保持活动状态,GET / POST / HEAD请求,并将它们提供给在启动时加载的处理程序。当我在嵌入式设备上工作时,由于空间非常有限,必须具备某种基于Web的控制面板,因此我进行了这样的操作。特别是一个控制电源插座的设备。

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

我的小服务器表现不错,可以处理大约150个客户端而无需分叉或线程,甚至还有一个不错的小模板系统,UI人员可以修改页面而不需要手把手的指导。

我绝对不会在任何生产网站上使用这种设置,即使是带有留言簿的基本 Hello World 主页。

现在,如果我所需要做的就是在端口80/443上监听,接受小的POST负载请求,对其进行清理并将其转发到其他客户端......这有点不同。但这是一个特定任务的服务器,假装成一个Web服务器,并不使用C语言生成动态页面。

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

许多服务器端程序可以用C语言完成,更不用说CGI编程了。它们也可以使用与MySQL一起的C语言,这是非常可能的。但是如果没有访问它们的源代码,我们就无法知道它们使用了多少C语言。

声称自己是“仍在使用C语言的少数人”可能只是个玩笑。看看像这样的统计数据,我至少希望如此。

约翰

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

它使用SQLite作为后端。





相关问题
热门标签