我刚刚阅读了关于我们的http://www.meebo.com/页面,读到了这样一句话:“另外,我们是为数不多的还在使用C语言的公司之一!”
考虑到meebo是一个在线聊天客户端,它们如何与C一起工作?他们如何使用C作为后端?它是如何与前端交互的?例如,假设用户创建了一个新帐户,并且要创建新目录,那么信息如何从前端传递到后端?
如果这是一个无效的问题,我很抱歉。
谢谢
编辑1: CGI入门教程很棒。关于这一点,我可以从我的图书馆里找到什么好书吗?
非常感谢你们的快速反应!
发布于 2009-03-03 04:07:50
我不知道meebo是怎么做到的,但考虑到它是聊天软件,他们可能有一个用C语言编写的定制服务器来处理实际的消息流量。
但是,Apache和大多数其他HTTP服务器总是能够调用C程序,就像它们可以为某些请求调用PHP、CGI和其他语言一样。有些网站甚至是用Lisp编写的。
与解释型语言不同的是,后端每次都必须编译,但这是在启动时发生的,并且是构建/生产脚本的一部分。
给定的权限和运行C程序所使用的用户帐户必须仔细选择,当然,C网站也存在其他C程序可能会遇到的相同问题,如缓冲区溢出、段错误、堆栈溢出等。只要你以减少的权限运行它,你就会得到更好的保护,而且它不会比任何其他语言/平台/体系结构更糟糕。
然而,对于服务器来说,它仍然被广泛使用--我想这是黄金标准。您可以找到大量用Java、C++和所有其他语言编写的服务器,但C语言似乎仍然存在。
-Adam
发布于 2009-03-03 04:09:51
Meebo使用一个名为mod_meebo的自定义Lighttpd模块。它没有完全回答您的问题,但我想您可能会感兴趣。
发布于 2009-03-03 04:36:46
我已经在短短50行代码(稀疏)或几百行(更好)代码中使用了非阻塞HTTP1.1服务器,最高可达5k (安全)。服务器将加载动态共享对象作为模块来处理特定类型的请求。
父代码将处理连接跟踪、保持活动、GET/POST/HEAD请求,并将它们提供给在启动时加载的处理程序。当我在嵌入式设备上使用非常小的空间时,我做到了这一点,这些设备必须有某种基于web的控制面板。特别是控制电源插座的装置。
每个DSO的入口点是由URL和使用的方法定义的(即,/foo根据它所服务的请求类型的不同而表现不同)。
我的小服务器做得很好,可以在没有分支或线程的情况下处理大约150个客户端,甚至有一个很好的小模板系统,这样UI人员就可以修改页面,而不需要手持。
我绝对不会在任何类型的生产站点上使用这种设置,甚至是您的基本hello world主页和留言簿。
现在,如果我要做的就是监听端口80/443,用一个小的POST负载接受请求,清理它们并将它们转发给其他客户端……它是一个小的different.But,它是一个任务特定的服务器,伪装成一个web服务器,它不使用C来生成动态页面。
https://stackoverflow.com/questions/605064
复制相似问题