CGI规范及其历史

CGI 接口大家都很熟悉,web开发的书籍都有所提及,但是它的标准说明,大家可能没有看过,现总结如下:


RFC?

http://tools.ietf.org/html/rfc3875


CGI是什么?

为动态web内容页提供一套标准的方法,主要是为不同动态页面处理语言在不同的web服务器下提供一致的接口规范。比如语言有php ruby python等,web服务器有apache、nginx、lighthttp等。其中需要规范的接口包括会话环境变量,会话客户端信息。


CGI历史?

1993年美国国家计算机中心起草制定一份CGI的说明,1997年Ken Coar领导的团队制定了CGI1.1规范,并提交RFC。


详情?

SERVER_PROTOCOL :信息协议的名字和修订版。格式为protocol/reVision 。

SERVER_PORT :发送请求的端口号。

REQUEST_METHOD :请求的方法。对于HTTP,有"GET"、 "HEAD"、 "POST"等等。

PATH_INFO :额外的路径信息,由客户端给出的。换句话说,脚本可以由他们的虚拟路径名来访问,在这个路径的末尾附带额外的信息。这个额外信息被作为PATH_INFO发送。这个信息如果在传递给CGI脚本之前来自URL就可以由服务器来解码。

如果请求http://example.com/test/test.php/a/b?k=v,则PATH_INFO的值为/a/b

PATH_TRANSLATED :服务器提供了一个PATH_INFO的转换版本,它需要路径并且为它做虚拟到物理的映射。

SCRIPT_NAME :将要执行的脚本的一个虚拟路径。

QUERY_STRING :在引用脚本的URL中紧跟在?之后的信息。这是一个查询信息。它不能以任何方式来解码。这个变量总是可以在有查询信息的时候被设置,而不管命令行解码。

REMOTE_HOST :产生请求的主机名。如果服务器没有这个信息,它应该设置REMOTE_ADDR 并且让这个为未设置状态。

REMOTE_ADDR :产生请求的远程主机的IP地址。

AUTH_TYPE :如果服务器支持用户验证,脚本就受保护。这是一个协议规范授权方法,用于验证用户。

REMOTE_USER :如果服务器支持用户验证,脚本就受保护。这是他们授权的用户名。

REMOTE_IDENT :如果HTTP服务器支持RFC931认证,这个变量将被设置为从服务器取出的远程用户名。这个变量的用法应该只限制在登陆的时候。

CONTENT_TYPE :对于哪些已经附上信息的请求,比如 HTTP POST和PUT,这是数据的内容类型。

CONTENT_LENGTH :客户端给的数据内容的长度。


都有例外

各个web服务器、语言也都有自己独特的实现,比如
REQUEST_URI:包含HTTP协议中定义的URI内容。如果请求http://example.com/test/test.php?k=v,则REQUEST_URI 为/test/test.php?k=v

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值