将数据从C语言的服务器传递到python脚本

时间:2015-02-24 16:48:47

标签: sockets network-programming cgi server

我正在开发一个原型Web应用程序。我正在使用我自己开发的玩具http服务器,它是用C语言编写的。服务器需要从提交的html表单中获取文本数据,并且为了进一步处理它应该将它传递给我用python编写的脚本。我知道以下方法可以达到同样的效果。此外,处理完成后,脚本必须将数据返回给服务器。

  1. 将数据保存在文件中,让python脚本访问它。
  2. 从服务器代码中调用系统或exec系列函数。
  3. 我听说过CGI,两侧都使用了插座。我知道如何在我的python脚本中做同样的事情。但我无法看到在C服务器端如何做同样的事情。
  4. 通常这是抽象出来的,因为大多数人使用apache或nginx作为理论服务。如何在服务器代码中实现CGI?

1 个答案:

答案 0 :(得分:1)

CGI在此处介绍:http://tools.ietf.org/html/rfc3875

通过' CGI over socket'你可能意味着 FastCGI 有点不同(并且涉及在Unix套接字上监听并发回响应的长时间运行的进程)。经典CGI涉及产生一个短暂的过程,然后通过环境变量接收请求参数(通过setenv()从您的服务器设置。

请求数据通过 stdin 发送到生成的进程(例如,在Python中,sys.stdin)。然后通过stdout写入输出响应(带标题和全部)。

CGI非常简单,这就是为什么它被如此快速地被大量语言所采用 - 实现CGI的学习曲线相当快。

FastCGI仅在脚本语言层与CGI类似(即编程接口仍然有些类似);但是实际的机制是相当不同的(你需要通过Unix套接字序列化信息)。