xuejianhui

导航

草稿--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编辑  收藏  举报