第20课时 对HTTP和CGI进行操作
一、HTTP通信概述
浏览器与Web服务器连接时,浏览器向服务器发送一条初始消息。
服务器发送一个应答消息。
1,人工检索Web页
telnet server_name port_NO
连接之后可能看不到提示符和连接消息,这是正常的
键入如下内容:GET http://server_name/ HTTP/1.0,然后按两次Enter。
2,返回非文本信息
CGI模块使用header函数设置MIME内容类型(Content-Type),默认text/html。
设置其他内容类型,使用-type选项。
常用的MIME内容类型是text/plain(不需转换的文本),image/gif(GIF图形),image/jpeg(JPEG图形),application/appname(应用程序appname特点的数据)和application/octet-steam(原始二进制数据)。
二、调用CGI程序的详细说明
启动CGI程序:通过链接调用CGI程序的URL或直接键入URL,把CGI程序做为HTML填充窗体的目标程序。
1,给CGI程序传递参数
包含参数的URL:?指明其后为参数,=之前是参数名,之后是参数值,&参数分隔符。
2,特殊参数
在URL中?,&,',"和空格都是特殊字符,需要进行转义。
对字符转义是把字符的ASCII值转换成一个两位数十六进制数字,并在他的前面加一个百分号。
CGI模块中escape函数可创建转义字符串,但需要显示要求使用该函数,即use CGI qw(:all escape);。
三、服务器端的包含程序(SSI)
正确地运行SSI,要使用shtml或stm的HTML扩展名。
<!--#echo var="LAST_MODIFIED">替换上次修改的日期。
<!--#exec cgi="/cgi-bin/simple.cgi">执行CGI程序
四、部分环境函数简介
相关文档查看CGI部分。
五、重定向
CGI模块中的redirect函数用于实现重定向。
将HTML的<META HTTP-EQUIV="refresh">标记用于重定向,会在重定向之前产生明显的延迟,浏览器要先加载全部web页,javascript存在同样问题。
HTML重定向是在任何HTML之前发生的。