《Perl编程24学时教程》笔记第20课 perl HTTP和CGI操作
第20课时 对HTTP和CGI进行操作
一、HTTP通信概述
浏览器与Web服务器连接时,浏览器向服务器发送一条初始消息。
Connection: Keep-Alive 连接保持打开状态
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* 接受数据的类型
Accept-Charset: iso-8859-1, *, utf-8 接收数据的编码
Accept-Encoding: gzip 接收压缩数据
Accept-Language: en, en-GB, de, fr, ja, ko, zh 接收的语言
Host: testserver:80 访问的服务器和端口
User-Agent: MCZILLA/4.51 [en]C-c32f404p {WinNT; U} 浏览器的身份
服务器发送一个应答消息。
Date: 时间 时间
Server: Netscapte-Enterprise/3.5.1G 服务器的身份
Content-Length: 222 发送给浏览器的字节数
Content-Type: text/html 发送给浏览器的数据种类
Last-Modified: 时间 上次修改的时间
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部分。
user_agent 返回浏览器的种类。
remote_host 返回检索Web页的系统的主机名或IP地址。
script_name 返回正在运行该程序的程序名。
server_name 返回托管CGI程序的服务器的名字。
virtual_host 返回用于托管CGI程序的虚拟主机名。
五、重定向
CGI模块中的redirect函数用于实现重定向。
将HTML的<META HTTP-EQUIV="refresh">标记用于重定向,会在重定向之前产生明显的延迟,浏览器要先加载全部web页,JavaScript存在同样问题。
HTML重定向是在任何HTML之前发生的。
您可能感兴趣的文章:
《Perl编程24学时教程》笔记第17课 perl的CGI概述
《Perl编程24学时教程》笔记第24课 建立交互式Web站点
《Perl编程24学时教程》笔记第18课 perl的基本窗体
《Perl编程24学时教程》笔记第23课 perl实现服务器推送和访问次数计数器
《Perl编程24学时教程》笔记第21课 perl操作cookie
《Perl编程24学时教程》笔记第22课 CGI发送电子邮件
《Perl编程24学时教程》笔记第19课 perl的复杂窗体
《Perl编程24学时教程》笔记第20课 perl HTTP和CGI操作
Perl 环境安装
php是编程语言么?