教你用shell寫CGI程式

來源:互聯網
上載者:User

以前用shell寫過一些cgi的例子。今天向大家介紹一下。

CGI是一種介面的標準,並不區分程式設計語言,也就是說,CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變數。CGI會將標準輸出重新導向到給http的response,返回給瀏覽器。

CGI嚴格的介紹,公用網關介面CGI(Common
GatewayInterface) 是WWW技術中最重要的技術之一,有著不可替代的重要地位。CGI是外部應用程式(CGI程式)與Web伺服器之間的介面標準,是在CGI程式和Web伺服器之間傳遞資訊的規程。CGI規範允許Web伺服器執行外部程式,並將它們的輸出發送給Web瀏覽器,CGI將Web的一組簡單的靜態超媒體文檔變成一個完整的新的互動式媒體。

……

言歸正傳,下面詳細介紹一下如何使用shell來寫一個CGI。

對於CGI而言,最主要就是接收到使用者的請求,從請求中,解析出get或者post方法傳遞過來的參數。這點,我認為也是對於初學者最麻煩的地方,這裡提供一個已經完成這種功能的指令碼—proccgi.sh(稍後會提供下載的網址)。這個指令碼可以直接解析出get和post方法傳過來的資料。

使用方法:

在CGI的shell指令碼中調用eval `./proccgi.sh $*`語句,然後使用“$FROM_”和參數的key,就可以獲得參數的值了,如task_id=”$FORM_taskid”。

就是一個最簡單的shell的CGI程式了,從前台將taskid=XXXX,傳給CGI程式。CGI中調用了proccgi.sh指令碼,將taskid的值解析出來存放到變數FROM_taskid中。這樣,就已經拿到taskid的值了。接下來print task_id,是將task_id的值輸出到標準輸出,到此CGI程式就全部結束了,CGI會將print到標準輸出的內容全部當作http的response,返回給瀏覽器。

有人可能奇怪,這明明是個簡單的shell的指令碼。怎麼就可以當作CGI來用呢。前面已經說過,CGI是一個介面的標準,只要程式的輸出到標準輸出的內容,第一行是“Content-type:text/html;charset=UTF-8\n”這種形式的,就可以當作CGI來使用。不相信的朋友,可以用這種語言試試。當然,寫好的CGI必須放在apache的可執行目錄下面啊。不然無法通過url訪問到這個CGI。

最後關於CGI的命名,在公司,寫完CGI之後,一般會將名字修改成XXXX.cgi。不管是指令碼還是二進位程式,都可以這樣修改它。其實這並沒有什麼規定,保留.exe、.sh或者.py,CGI照樣可以執行。

其實說到底CGI就是後台一個可執行程式。

原創文章,轉載請註明: 轉載自成長的企鵝

本文連結地址: 教你用shell寫CGI程式

關於我:成長的企鵝簡介

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.