2021
07-17
07-17
如何用C写一个web服务器之CGI协议
目录前言CGICGI请求CGI响应Nginx和PHP的CGI实现SAPIPHP-FPM纠偏代码实现http_parsercJSON前言这次更新主要实现一下CGI协议。先放上GitHub链接https://github.com/zhenbianshu/tinyServer作为一个服务器,基本要求是能受理请求,提取信息并将消息分发给CGI解释器,再将解释器响应的消息包装后返回客户端。在这个过程中,除了和客户端socket之间的交互,还要牵扯到第三个实体-请求解释器。如上图所示,客户端负责封装请求和...
继续阅读 >
SAPI:ServerApplicationProgrammingInterface服务器端应用编程端口。研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。本文不会详细介绍每个PHP的SAPI,只是针对最简单的CGISAPI,来说明SAPI的机制。我们先来看看PHP的架构图:SAPI指的是PHP具体应用的编程接口,就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行,PHP脚本要执行有...
CGI全称是“通用网关接口”(CommonGatewayInterface),它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。CGI描述了客户端和这个程序之间传输数据的一种标准。CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。FastCGI是Web服务器和处理程序之间通信的一种协议,是CGI的一种改进方案,FastCGI像是一个常驻(long-li...