http服务器与cgi交互过程
2016-05-24 11:53
337 查看
在处理cgi GET 表单时,服务器发送给cgi程序是通过环境变量发送的,并且GET的表单内容存放在QUERY_STRING中,因此,在服务器与cgi程序通信之前,会先把GET表单进行解析,并建立环境变量。 同时,由于cgi程序是通过标准输出向服务器输出数据,因此在通信之前,还需要建立一条服务器与cgi程序之间的通信管道,重定向cgi程序的标准输出到服务器的管道读端口。如下图所示:
![](http://img2.ph.126.net/S3HdGpGHOJEENcg7rBW3Dg==/6598289125051647082.jpg)
在处理cgi POST表单时,服务器通过环境变量发送POST表单的长度,服务器向cgi程序输入数据除了采用环境爱变量外,还把POST的表单内容通过写管道输入到cgi的标准输入,同时cgi程序输出数据时是通过标准输出发送到服务器。 因此,在服务器向cgi程序传送数据的时候,还需要建立两个管道,并分别把cgi程序的标准输入与输出进行重定向。即,在第一条管道中,服务器往管道写端写数据,管道的另一端读端重定向到cgi程序的标准输入,cgi程序通过标准输入读数据。
在第二条管道中,把管道的写端重定向到cgi程序的标准输出,cgi程序通过标准输出向服务器发送数据,服务器通过管道的读端读取cgi发送过来的数据。如下图所示:
![](http://img2.ph.126.net/S3HdGpGHOJEENcg7rBW3Dg==/6598289125051647082.jpg)
在处理cgi POST表单时,服务器通过环境变量发送POST表单的长度,服务器向cgi程序输入数据除了采用环境爱变量外,还把POST的表单内容通过写管道输入到cgi的标准输入,同时cgi程序输出数据时是通过标准输出发送到服务器。 因此,在服务器向cgi程序传送数据的时候,还需要建立两个管道,并分别把cgi程序的标准输入与输出进行重定向。即,在第一条管道中,服务器往管道写端写数据,管道的另一端读端重定向到cgi程序的标准输入,cgi程序通过标准输入读数据。
在第二条管道中,把管道的写端重定向到cgi程序的标准输出,cgi程序通过标准输出向服务器发送数据,服务器通过管道的读端读取cgi发送过来的数据。如下图所示:
![](http://img3.ph.126.net/sIICKPOh99NL4ldIuzVJuQ==/6597958172051859813.jpg)
相关文章推荐
- 网络虚拟化技术与应用场景
- Http 篇
- 时滞神经网络的Matlab绘图实现
- URL,URLConnection,HttPURLConnection的使用
- Tcp Accept返回的Socket不能作为唯一标示
- Java网络连接之HttpURLConnection与HttpClient 区别及联系
- TCP FIN_WAIT_2状态问题分析
- network 网络篇
- Nginx中为http请求或响应添加头部字段
- 网络与通信:网络协议(概念)
- Web - HTTPS
- 子网掩码怎么计算
- 日常开发——Android请求自定义证书的https
- 网络图片下载
- OkHttp使用教程
- 图解netstat命令实例
- 浏览器Uncaught QuotaExceededError错误(localStorage超出限额)
- Android Volley完全解析(二),使用Volley加载网络图片
- bp神经网络及matlab实现
- zabbix监控硬盘指标,tcp连接状态