關於學習使用CGI的一些總結

解釋

有關CGI,百度百科上有一些講解如下:
CGI(Common Gateway Interface) 是WWW技術中最重要的技術之一,有着不可替代的重要地位。CGI是外部應用程序(CGI程序)與WEB服務器之間的接口標準,是在CGI程序和Web服務器之間傳遞信息的過程。CGI規範允許Web服務器執行外部程序,並將它們的輸出發送給Web瀏覽器,CGI將Web的一組簡單的靜態超媒體文檔變成一個完整的新的交互式媒體。
Common Gateway Interface,簡稱CGI。在物理上是一段程序,運行在服務器上,提供同客戶端HTML頁面的接口。這樣說大概還不好理解。那麼我們看一個實際例子:現在的個人主頁上大部分都有一個留言本。留言本的工作是這樣的:先由用戶在客戶端輸入一些信息,如評論之類的東西。接着用戶按一下“發佈或提交”(到目前爲止工作都在客戶端),瀏覽器把這些信息傳送到服務器的CGI目錄下特定的CGI程序中,於是CGI程序在服務器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的文件中。然後CGI程序給客戶端發送一個信息,表示請求的任務已經結束。此時用戶在瀏覽器裏將看到“留言結束”的字樣。整個過程結束。

簡單使用

這裏上一個CGI的簡單使用過程
1. 安裝apache
ubuntu 16
ifconfig | grep 121.250
inet addr:121.250.223.57
apt-get install apache2
用瀏覽器可以看到該默認網頁index.html。
ls /var/www/html/
index.html

  1. CGI腳本:示例1
    開啓apache的cgi支持
    cd /etc/apache2/mods-enabled/
    ln -s ../mods-available/cgi.load cgi.load
    apachectl restart
    一開始apache的cgi目錄(/usr/lib/cgi-bin/)目錄是空的。使用bash寫第一個cgi腳本,內容如下:
    cat /usr/lib/cgi-bin/hellow1.cgi
    #!/bin/bash
    echo “Content-type: text/html”
    echo ”
    echo ‘


    echo ‘bash cgi hello wordl 1’
    chmod +x hellow1.cgi
    用瀏覽器打開/cgi-bin/hellow1.cgi可以看到一行文本:
    http://scanner/cgi-bin/hellow1.cgi
    bash cgi hello wordl 1
    注意:爲了方便,可以把如下一行添加到
    C:\WINDOWS\system32\drivers\etc\hosts
    121.250.223.57 scanner
    看該頁源代碼,有兩行:
     
    bash cgi hello wordl 1
    如果在hellow1.cgi的尾部增加一行|:
    env
    則在網頁中可以看到更多的輸出,比如:
    REMOTE_ADDR=144.255.7.160
    REQUEST_URI=/cgi-bin/hellow1.cgi
    QUERY_STRING=

  2. 網頁表單加CGI處理:示例2
    寫一個表單:
    cat /var/www/html/req1.htm
    req1


    text



    注:應該使用post方法,但是get相對處理起來稍簡單些。
    chmod +x /usr/lib/cgi-bin/req1.cgi
    cat /usr/lib/cgi-bin/req1.cgi
    #!/bin/bash
    echo “Content-type: text/html”
    echo ”
    echo ‘


    echo your input is $QUERY_STRING
    瀏覽器訪問 http://scanner/req1.htm
    則提交後網址變化爲
    http://scanner/cgi-bin/req1.cgi?input1=some-txt1
    your input is input1=some-txt1

另外一些學習資料

文章轉載於:http://blog.csdn.net/chuanzhilong/article/details/52868737
CGI接口原理及實現(2012-12-7 Over)
這裏寫圖片描述
1.CGI定義:
CGI(CommonGateway Interface)是HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上。

2.CGI功能:
絕大多數的CGI程序被用來解釋處理來自表單的輸入信息,並在服務器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程序使網頁具有交互功能。
3.CGI運行環境:
CGI程序在UNIX操作系統上CERN或NCSA格式的服務器上運行。 在其它操作系統(如:windows NT及windows95等)的服務器上 也廣泛地使用CGI程序,同時它也適用於各種類型機器。
4.CGI處理步驟:
⑴通過Internet把用戶請求送到服務器。
⑵服務器接收用戶請求並交給CGI程序處理。
⑶CGI程序把處理結果傳送給服務器。
⑷服務器把結果送回到用戶。
5.CGI服務器配置:
在許多服務器cgi-bin是僅能夠放置CGI腳本的目錄。
這裏寫圖片描述
在Windows平臺上將C或C++寫好的程序的Debug或Release版本的.exe程序拷貝到cgi-bin的目錄下(如上圖所示),將.exe改爲.cgi也可同樣運行,如下2個圖。
這裏寫圖片描述
這裏寫圖片描述
cgi-bin目錄是存放CGI腳本的地方。這些腳本使WWW服務器和瀏覽器能運行外部程序,而無需啓動另一個程序。它是運行在Web服務器上的一個程序,並由來自於瀏覽者的輸入觸發。
CGI程序不是放在服務器上就能順利運行,如果要想使其在服務器上順利的運行並準確的處理用戶的請求,則須對所使用的服務器進行必要的設置。
配置:根據所使用的服務器類型以及它的設置把CGI程序放在某一特定的目錄中或使其帶有特定的擴展名。
Apache網絡服務器配置在/var/www/cgi-bin裏(如下圖所示筆者電腦的目錄位置)。C++編譯的可執行文件可以轉換成擴展名爲.cgi的文件。
更改初始配置的的方法:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章