我有一个我写的脚本,可以在命令行上使用,也可以作为CGI脚本使用,需要确定脚本的调用方式,这样我就可以为web请求输出内容类型的头文件(也许还有一些反缓存标题也是).我的第一个想法是检查http环境变量是否存在:
my $js = build_javascript(); if ( exists $ENV{HTTP_HOST} ) { print "Content-type: text/javascript\n\n"; } print $js;
有没有更好的办法?
解决方法
根据
RFC3875中的CGI规范(第4.1.4节),GATEWAY_INTERFACE环境变量将是检查您是否在CGI上下文中运行的权威事项:
4.1.4.
GATEWAY_INTERFACE
The
GATEWAY_INTERFACE
variable MUST be set to the dialect of CGI being used by the server to communicate with the script.