ftp搜索引擎的设计和实现:5.1 CGI脚本(一)
来源:互联网 发布:tb程序化交易平台源码 编辑:程序博客网 时间:2024/06/08 06:13
CGI 意思为 Common Gateway Interface, 一种基于浏览器的输入、在Web服务器上运行的程序方法. CGI脚本 使你的浏览器与用户能交互,为了在数据库中寻找一个名词, 提供你写入的评论,或者从一个表单中选择几个条目并且能得到一个明确的回答. 如果你曾经遇到过在web上填表或进行搜索, 你就是用的CGI脚本. 你那时也许没有意识到,因为大部分工作是在服务器上运行的,你看到的只是结果.
CGI脚本简单地讲是个运行在Web服务器上的程序, 由浏览器的输入触发。这个脚本通常象服务器和系统中其他程序如数据库的桥梁。
CGI 脚本难道不是一个真正的脚本?按照你的服务器的支持, 他们可能是一个编译好的程序或者批命令文件或者其他可执行的东西。为了简单起见,我们统称他们为脚本scripts.
CGI脚本是用下列两种方法使用的: 作为一个表单的ACTION 或 作为一个页中的直接link。一个URL指向一个CGI脚本。一个CGI脚本的URL能如普通的URL一样在任何地方出现。
一个CGI脚本的通常流程是:
1. 服务器接收请求, 按照那个URL指向的脚本文件(注意文件的位置和扩展名),执行脚本。
2. 脚本执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序.
3. 脚本产生某种Web服务器能理解的输出结果.
4. 服务器接收来自脚本的输出并且把它传回浏览器,让用户了解结果。
下面来解析一个cgi脚本的实现:
首先一个cgi脚本都有一个输出头部,这个头部实际不是文本的一部分,是服务器与浏览器之间的信息协议,你实际看不到。
有三个类型的头部: Content-type, Location, 和Status. Content-type 最普遍。有关content-type解释可以见有关HTML的说明, 一个你可以发出的特定编码象这样:
Content-type: text/html
在这个例子中,输出数据的类型是text/html; 换句话说, 他是个HTML文件.
通用格式和content-types.
Format
Content-Type
HTML
text/html
Text
text/plain
GIF
image/gif
JPEG
image/jpeg
PostScript
Application/postscript
MPEG
video/mpeg
注意content-type 后面必须跟一个空行. 如果你没有空行,服务器将无法搞清这个头部在哪里结束。
如果你的cgi脚本是C语言写的,通常是这样开头的:
printf("Content-type:text/html\n\n");
如果是个bash shell,则开头是:
#!/bin/sh
echo Content-type: text/plain
echo
输出数据
你输出的数据应该符合你所规定的content-type; 如果content-type是text/html, 输出应该是HTML代码. 如果content-type是image/gif, 输出应该是在一个二进制的GIF文件.
一个最简单的cgi脚本例子:
#!/bin/sh
echo Content-type: text/plain
echo
/bin/date
把该脚本命名为getdate,放在web服务器的cgi-bin目录。假设web服务器的域名是weichao.3322.org,当你在浏览器中输入
http://weichao.3322.org/cgi-bin/getdate
你在浏览器里得到类似下面的输出:
Wed Apr 4 22:33:31 CST 2007
下节来介绍怎么跟cgi脚本交互。
- ftp搜索引擎的设计和实现:5.1 CGI脚本(一)
- ftp搜索引擎的设计和实现:5.1 CGI脚本(二)
- [转]FTP搜索引擎的设计与实现(优化版)
- [转]FTP搜索引擎的设计与实现(优化版)
- [转]FTP搜索引擎的设计与实现(优化版)
- FTP搜索引擎的设计与实现
- FTP搜索引擎的设计与实现
- [转]FTP搜索引擎的设计与实现
- FTP搜索引擎的设计与实现
- FTP搜索引擎的设计与实现
- [转]FTP搜索引擎的设计与实现
- [转]FTP搜索引擎的设计与实现
- cgi脚本进行数据的处理和反馈(一)
- 搜索引擎的设计与实现(一)从零开始?
- cgi脚本进行数据的处理和反馈(二)
- .net 2.0 下的FTP搜索引擎实现
- 实现自己的搜索引擎(一)
- 搜索引擎的设计与实现
- C#中调用Windows API的要点
- vim的查找字符串
- ftp搜索引擎的设计和实现:5.1 CGI脚本(二)
- svn install
- opencv保存图片
- ftp搜索引擎的设计和实现:5.1 CGI脚本(一)
- XStream教程
- wince 设备与PC机连接
- 一些操作sql server相关服务的命令行
- --------谁。偷走的那些青春
- 有一天,WebForm 对 MVC 说:能否借你的UpdateModel方法来用用?
- document.domain 跨域问题【转】
- EBMIDE——相关文章索引
- Linux下Gcc生成和使用静态库和动态库详解(转)