草稿--cgi
----------------------------------------------------------------------------------------------------- 术语: CGI: 公用网管接口(Common Gateway Interface) URL: 资源定位器 JSON: JavaScript 对象表示法(JavaScript Object Notation) > JSON 是存储和交换文本信息的语法。类似 XML。 > JSON 比 XML 更小、更快,更易解析。 ----------------------------------------------------------------------------------------------------- 1、浏览Web 1)Web :指试图进行数据交换的两个不同系统之间进行的交互操作。 抓取Web页 -- 客户机系统 另一端 -- Web服务器系统 2)URL:资源定位器 当客户机需要检索一个We b页时,它要查看统一资源定位器( U R L),以确定使用什么协 议、服务器,以及在该服务器上提出的是什么请求。 示例: http://www.google.com:80/more.html URL可分割成下列部分: 1)http :使用协议,传送Web页的协议.也会看到ftp 或 https等协议. 2)www.google.com :服务器名或主机名,包含想要的文档. :有时不是主机名,而是IP地址,常写作地址,如209.185.108.147. 3):80 :端口号,确定[客] 和 [服]在哪个端口连接,http常使用80. 4)more.html :指对服务器提出的请求.常为你想检索的文档. :有时其为路径名,例如:/archives/foo.html; :或使用其他字符结尾(?&),不过其基本上指客户机要求向服务器检索的文档. 这时客户机为http下列操作步骤: 1)主机名转换成IP地址,主机名为:www.google.com; 2)使用IP地址和端口号与www.google.com上的服务器建立连接; 3)服务器发出应答,在上例中,服务器发出more.html的内容,然后断开与服务器的连接。 4)客户机在屏幕上显示服务器应答的Web内容。 ----------------------------------------------------------------------------------------------------- 2、动态Web页 -- 使用CGI 1)检索静态Web页:服务器不对数据进行任何处理,它只是查看客户机提出的请求,并 将请求的数据传送给客户机。 2)在Web上创建动态内容的方法之一是使用 CGI程序,CGI是Web服务器用来在服务器上 运行程序以便生成Web内容的公认的方法。 3)URL-->CGI --> Web内容 --> 客户端 4)客户机检索CGI程序的Web页时: 1)服务器启动CGI程序的一个新实例。 2)CGI程序使用它需要的信息生成一个Web页,或者生成另一个应答。 3)该Web页被送回给客户机。 4)CGI程序退出。 5)表单的action事件告诉了浏览器把数据发送给哪个cgi程序进行处理, cgi脚本包括三个部分: 1)读取用户的表单输入, 2)对输入进行处理, 3)把结果输出给标准输出; 当提交表单时会以下列格式产生cgi程序的输入: http://192.168.168.206/cgi-bin/get?name=Kevin+Burris&email=kevin@idocs.com |--cgi路径--|-----------------参数------------------| |----------------------输入部分---------------------| 参数解析如下: 1) nameX表示参数名称; 2) valueX表示参数值; 3) 每参数以&分割; 4) 另外+表示空格,如Kevin+Burris; 5) %xx表示十六进制数。 数据输入的方法:get 和 post GET :将数据附加在URL后发送。 如:/cgi/a_cgi_test.exe?your_data, CGI程序通过检查环境变量QUERY_STRING来得到输入数据。 POST:将数据送到CGI程序的stdin输入流。 在表单中的各个变量都以name=value形式向WEB服务器发送,多数据间用&分隔。 如:name=value&name2=value2。其中名字(name,name2)是Form中定义的 INPUT、SELECT或TEXTAREA等标置(Tag)名字,值是用户输入或选择的标置值。 6)CGI处理程序:任何具有标准输入/输出,环境变量的语言都可以。 7)CGI输出:cgi输出必须有一个cgi标题 标题有以下三类: 1)Location : 指明输出另一个文档的URL. 例如 fprintf(stdout,"Location: http://www.vchelp.net/\n\n"); 2)Content-Type : 指明发送的数据的MIME类型. 例如 fprintf(stdout,"Content-Type: text/html\n\n"); 3)Status : 指明HTTP状态码. 例如 fprintf(stdout,"Status: 200\n\n"); 注意:每种标题后都必须跟一个换行和一个空行。 MIME类型以类型/子类型的形式来表示,下面是一些常用的类型/子类型的组合: Text/plain 普通文本类型 Text/html HTML格式的文本类型 Audio/basic 八位声音文件格式,后缀为.au Video/mpeg MPEG文件格式 Video/quicktime QuickTime文件格式 Image/gif GIF图形文件 Image/jpeg JPEG图形文件 Image/x-xbitmap X bitmap图形文件,后缀为.xbm ----------------------------------------------------------------------------------------------------- ******************************************************************************** ******************************************************************************** ******************************************************************************** #------------------------------------------------------------------------------# 环境变量: 一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和 系统文件夹位置等。 Linux下的环境变量 shell环境依赖于多个文件的设置。当shell被调用时,它从两个初始文件读取命令。 /etc/profile包含了系统变量,它由系统管理员维护,由系统管理用设置本地系统变量和特 殊命令。普通用户的启动信息文件($HOME/.bash_project)由各用户自己维护,该文件可以被 修改以实现任何特定的系统初始化。 只有在特定的情况下才读取profile文件,确切的说是在用户登陆的时候。当运行shell 脚本或subshell以后,就无须再读profile.虽然所有profile都可选的,但是基本上所有系统 都有/etc/profile. 如果定义了变量ENV且已经传递到环境中没所有的bash shell都要读取并调用由这个变量 制定的文件所包含的命令。这个文件用来定义所有bash shell的特征,而不仅仅是登陆到shell。 这个文件的典型的名字是$HOME/,bashrc。 当用(系统管理员)新建用户时,.bash_profile、bashrc和其他公共的环境文件模板将 复制到/etc/skel这个目录下面。可以编辑这些初始化设置,也可以在此目录下添加附加的文件。 Example: 一个典型的系统profile(/etc/profile): PATH=$PATH:/usr/qa/tools/bin ENV==$HOME/.bashrc ORACLE_HOME=/dbs/oracle ORACLE_SID=qadb Export PATH ENV ORACLE_HOME ORCAL_SID Cat /etc/motd 一个典型的用户profile(.bashrc) PATH=$PATH:$HOME/bin TEAM=uvt1224 export TERM stty intr \^C cal mesg n 一个典型的用户 bashrc file (.bashrc): alias dir=ls lf='ls -FC' PSI='$PWS[!]>' set -o vi 别名和其他bash专用的定义应该放在.bashrc文件(不应在.bash_profile) 中定义; 否则会导致找不到某些命令。 应该记住profile文件和.bashrc文件的区别:两个profile都只在系统启动时被读取一次, 而.bashrc在系统启动和每次调用shell的时候都要被读取。 ******************************************************************************** ******************************************************************************** ********************************************************************************
posted on 2012-11-14 16:31 xuejianhui 阅读(239) 评论(0) 编辑 收藏 举报