CGI+GET+POST
2017-03-30 13:51
18 查看
服务器常常以两种途径之一向脚本传递信息:GET或POST。这两种方法被称为请求方法。所使用的请求方法是通过环境变量传给脚本,该环境变量叫作REQUEST_METHOD
Get: 对数据的请求;通过URL后面的参数发送请求信息。这些参数将放在环境变量QUERY_STRING中传给CGI程序。例如,有一个叫作Myprog.exe的脚本,从如下的链接启动它:
<a href="cgi-bin/myprog.exelname=blow&fname=joe">
REQUEST_METHOD是GET,QUERY_STRING包含lname=b1ow&fname=joe。
POST:当浏览器将数据从一个填写表单传给服务器时,发生POST操作。对于POST,QUERY一STRING可能为空或不空,这有赖于服务器。如果有信息,则其如GET的情况一样被格式化和传递,使用STDIN从服务器传到脚本,由于STDIN是一个源,脚本需要知道有多少有效数据。于是服务器还提供了另一个变量,CONTENT_LENGTH(在post时使用),以指出到来数据的字节数。而POST的数据格式为:
variable1=value1&variable2=value2&etc
CGI应用的基本结构:初始化、处理、输出和终止
理想情况下,一个脚本具有如下形式(do-initialize,do-process和do-output代表恰当的子例程):
程序开始
调用 do-initialize
调用 do-proces
调用 do一output
程序结束。
如果方法是GET,必须获得、分析、解码QUERY_STRING环境变量。如果方法是POST,必须检查QUERY_STRING并还要分析STDIN。如果CONTENT_TYPE环境变量是设为application/x-www-form-urlencoded,来自STDIN的源也需要解码。
CGI环境变量列表
SERVER-NAME:运行CGI序为机器名或IP地址。
SEUVER-INTERFACE:WWW服务器的类型,如:CERN型或NCSA型。
SERVER-PROTOCOL:通信协议,应当是HTTP/1.0。
SERVER-PORT:TCP端口,一般说来web端口是80。
HTTP-ACCEPT:HTTP定义的浏览器能够接受的数据类型。
HTTP-REFERER: 发送表单的文件URL。(并非所有的浏览器都传送这一变量)
HTTP-USER-AGENT:发送表单的浏览器的有关信息。
GETWAY-INTERFACE:CGI程序的版本,在UNIX下为
CGI/1.1。
PATH-TRANSLATED: PATH-INFO中包含的实际路径名。
PATH-INFO:浏览器用GET方式发送数据时的附加路径。
SCRIPT-NAME: CGI程序的路径名。
QUERY-STRING:表单输入的数据,URL中间号后的内容。
REMOTE-NOST:发送程序的主机名,不能确定该值。
REMOTE-ADDR:发送程序的机器的IP地址。
REMOTE-USBR:发送程序的人名。
CONTENT-TYPE:POST发送,一般为applioation/xwww-form-urlencoded。
CONTENT-LENGTH:POST方法输入的数据的字节数。
Get: 对数据的请求;通过URL后面的参数发送请求信息。这些参数将放在环境变量QUERY_STRING中传给CGI程序。例如,有一个叫作Myprog.exe的脚本,从如下的链接启动它:
<a href="cgi-bin/myprog.exelname=blow&fname=joe">
REQUEST_METHOD是GET,QUERY_STRING包含lname=b1ow&fname=joe。
POST:当浏览器将数据从一个填写表单传给服务器时,发生POST操作。对于POST,QUERY一STRING可能为空或不空,这有赖于服务器。如果有信息,则其如GET的情况一样被格式化和传递,使用STDIN从服务器传到脚本,由于STDIN是一个源,脚本需要知道有多少有效数据。于是服务器还提供了另一个变量,CONTENT_LENGTH(在post时使用),以指出到来数据的字节数。而POST的数据格式为:
variable1=value1&variable2=value2&etc
CGI应用的基本结构:初始化、处理、输出和终止
理想情况下,一个脚本具有如下形式(do-initialize,do-process和do-output代表恰当的子例程):
程序开始
调用 do-initialize
调用 do-proces
调用 do一output
程序结束。
如果方法是GET,必须获得、分析、解码QUERY_STRING环境变量。如果方法是POST,必须检查QUERY_STRING并还要分析STDIN。如果CONTENT_TYPE环境变量是设为application/x-www-form-urlencoded,来自STDIN的源也需要解码。
CGI环境变量列表
SERVER-NAME:运行CGI序为机器名或IP地址。
SEUVER-INTERFACE:WWW服务器的类型,如:CERN型或NCSA型。
SERVER-PROTOCOL:通信协议,应当是HTTP/1.0。
SERVER-PORT:TCP端口,一般说来web端口是80。
HTTP-ACCEPT:HTTP定义的浏览器能够接受的数据类型。
HTTP-REFERER: 发送表单的文件URL。(并非所有的浏览器都传送这一变量)
HTTP-USER-AGENT:发送表单的浏览器的有关信息。
GETWAY-INTERFACE:CGI程序的版本,在UNIX下为
CGI/1.1。
PATH-TRANSLATED: PATH-INFO中包含的实际路径名。
PATH-INFO:浏览器用GET方式发送数据时的附加路径。
SCRIPT-NAME: CGI程序的路径名。
QUERY-STRING:表单输入的数据,URL中间号后的内容。
REMOTE-NOST:发送程序的主机名,不能确定该值。
REMOTE-ADDR:发送程序的机器的IP地址。
REMOTE-USBR:发送程序的人名。
CONTENT-TYPE:POST发送,一般为applioation/xwww-form-urlencoded。
CONTENT-LENGTH:POST方法输入的数据的字节数。
相关文章推荐
- Apache下c语言的cgi如何获得Get,Post参数
- 在CGI程序中POST和GET消息的处理
- CGI实例--表单GET与POST示例
- cgi 编程的get和post
- cgi怎么获取页面请求参数(get、post两种请求)
- CGI实例--表单GET与POST示例
- CGI编程入门--GET与POST示例
- CGI实例--表单GET与POST示例
- 在CGI程序中POST和GET消息的处理
- CGI实例--表单GET与POST示例
- CGI程序中POST和GET消息的处理
- CGI编程入门--GET与POST示例
- 用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC
- linux下shell处理cgi的方法--post get
- fcgi/cgi 参数获取 get与post
- CGI提交表单的两种方式POST与GET
- HTML:CGI实例--表单GET与POST示例
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
- cgi 编程的get和post
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。