什麼是cgi指令碼,它們如何改進網站?

CGI代表公共閘道器介面。它是web伺服器執行程式併為web瀏覽器生成輸出的標準協議。瞭解所有關於CGI指令碼以及它們如何改進您的網站。...

CGI代表公共網關接口。它是web服務器執行程序併為web瀏覽器生成輸出的標準協議。該程序被稱為CGI程序(或CGI腳本)。當用戶的web瀏覽器請求特定的URL時,它代表web服務器執行以產生輸出。

cgi-scripts

CGI的好處

CGI在許多方面增強了網站。從對用戶進行身份驗證到提供全面的購物應用程序,CGIs是使web具有動態性和交互性的核心。下面是使用CGIs增強用戶體驗的一些主要好處。

  • 個性化到用戶:輸出可以個性化到每個用戶。例如,用戶可能正在檢查其銀行賬戶餘額,這可能需要從數據庫中檢索。
  • 其他類型的個性化:用戶可能正在使用**訪問網站,輸出需要根據**分辨率進行調整。
  • 進行更新:作為表單發佈的結果執行更新(解釋如下)。例如,您可能正在更新您的Facebook狀態。
  • 上傳文件:用戶上傳的文件需要服務器端的CGI來處理文件上傳請求,將文件存儲在特定位置。
  • 生成輸出:除了在瀏覽器中顯示輸出外,許多網站還提供其他形式的輸出,如Word文檔、PDF等。其中一些文檔可能需要由CGI動態生成,如您的電話賬單或信用卡對賬單。

提供靜態文件與cgis

HTML文件(以及JavaScript和CSS)由web服務器直接提供。另一方面,當請求特定的URL時,CGI程序由web服務器執行。它用於滿足需要訪問動態信息(例如駐留在數據庫中的信息)的請求。例如,驗證用戶以允許訪問:用戶名和密碼可以存儲在數據庫中,驗證用戶的請求需要訪問這些信息。為了服務於這個請求,web服務器將執行一個CGI程序來查找信息並驗證用戶。

How a CGI works.

配置web服務器

web服務器運行HTTP服務器軟件,該軟件提供了提供HTML文件以及執行CGI程序以動態生成輸出的能力。HTTP服務器軟件由web服務器管理員配置為在請求匹配特定模式的url時執行特定程序。

執行CGI

當用戶的瀏覽器向某個特定的URL發出請求時,瀏覽器會以HTTP頭的形式發送一大堆信息,可能還會發送HTTP正文。其中一些可能包括:

  • 瀏覽器類型
  • 用戶名(如果用戶已登錄)
  • 以前由web服務器存儲的任何Cookie
  • 表單變量(如果請求是POST請求)

當執行一個CGI來滿足這個請求時,服務器將所有這些信息傳遞給CGI程序。CGI可以使用這些信息的一部分或全部來處理請求並將輸出個人化給用戶。

處理表格帖子

CGIs的主要用途是處理HTML表單。

HTML表單是一種用戶交互設備,它提供各種控件,以便用戶可以提供輸入。當用戶單擊表單上的提交按鈕(或類似按鈕)時,web瀏覽器將聚合表單中的信息並將其發送到表單中指示的目標URL。反過來,web服務器通常調用CGI程序併發送從用戶收集的所有輸入。這種交互稱為表單POST,這是一個技術術語,表示將表單內容發送到CGI的方法。CGI處理表單內容並生成適當的響應發送到瀏覽器。

示例cgi

下面是一個用python編寫的示例CGI程序。可以將其部署到web服務器,以便從類似於以下內容的URL訪問:http://www.example.com/cgi-bin/env.cgi。當被調用時,CGI會報告它在其環境中從web服務器接收到的所有變量。這是一個簡單的CGI程序可以得到。

#!/usr/bin/pythonimport osprint "Content-type: text/plain"for key in os.environ: print key, "=>\"", os.environ[key], "\""

cgis的演變

cgi幾乎從web誕生之初就已經成為web服務器的一部分。有史以來第一個web服務器,NCSA HTTPd web服務器,最初只支持靜態文件。隨後,人們認識到響應URL請求執行腳本允許web服務器生成動態內容,於是CGI規範誕生了。

最早的CGI程序是用Perl、Tcl、shell等語言編寫的簡單腳本。它也可以用編譯語言(如C/C++)編寫,但這需要編譯程序的附加步驟來創建可執行的CGI。

隨著CGI變得更加複雜,用戶需求增加,人們認識到創建一個單獨的CGI進程來處理每個請求在內存和CPU開銷方面過於繁重。尤其是當服務請求所花費的時間比創建新進程所花費的時間要少的時候。

此時,web服務器開始嵌入成熟的腳本解釋器,以便用戶請求可以在單個web服務器進程內的單獨線程中處理。這提高了請求服務的效率,並縮短了響應時間。

這與專門為web設計的新語言(如PHP)的出現不謀而合。PHP解釋器從CGI程序本身開始。作為請求處理的一部分,它解析請求文件中的PHP指令並執行其中的命令。

今天,除了CGI腳本之外,還有許多用於在服務器上執行代碼以響應請求的技術。

您是否在公司網站的任何部分使用CGI腳本?您在部署或維護CGI腳本時遇到過任何特殊問題嗎?在下面的評論中討論。

  • 發表於 2021-03-13 08:17
  • 閱讀 ( 41 )
  • 分類:程式設計

你可能感興趣的文章

xss公司(xss)和csrf公司(csrf)的區別

...威脅。其中兩個是XSS和CSRF。 目錄 1. 概述和主要區別 2. 什麼是XSS 3. 什麼是CSRF 4. 並列比較——XSS與CSRF的表格形式 5. 摘要 什麼是xss公司(xss)? XSS是一種向網站注入惡意程式碼的程式碼注入攻擊。這是最常見的網站攻擊之一。它...

  • 發佈於 2020-10-18 08:51
  • 閲讀 ( 71 )

什麼是shell指令碼,為什麼要使用它

... 既然您已經知道了shell指令碼是什麼以及它們的許多優點,您不想在任務中使用它們嗎?您在使用它們時遇到了哪些問題?請在下面的評論中告訴我們。 ...

  • 發佈於 2021-03-13 04:53
  • 閲讀 ( 54 )

如何用photoshop指令碼自動化photoshop

...編輯影象的工具——我們是這裡的超級粉絲,這已經不是什麼祕密了。我們之前已經介紹瞭如何設計一個簡單的logo,以及如何修復過度曝光的照片,所以一旦掌握了基本知識,自動化是下一個合乎邏輯的步驟。 ...

  • 發佈於 2021-03-13 07:15
  • 閲讀 ( 59 )

什麼是電腦科學?

...電腦科學”用詞不當。電腦科學更類似於數學,這就是為什麼現在有些人更喜歡用“資訊學”來代替。 ...

  • 發佈於 2021-03-13 19:10
  • 閲讀 ( 47 )

5最佳免費php指令碼資源線上

...希望新增新功能,那麼使用其他人免費提供的程式碼沒有什麼錯。它會節省你的時間和精力。 ...

  • 發佈於 2021-03-16 14:36
  • 閲讀 ( 50 )

什麼是編碼?它是如何工作的?

... 什麼是程式碼(code)? ...

  • 發佈於 2021-03-18 05:18
  • 閲讀 ( 67 )

什麼是漸進式web應用,如何安裝?

... 但究竟什麼是進步的網路應用呢?PWA做了什麼而網站沒有?以下是您需要了解的漸進式Web應用程式。 ...

  • 發佈於 2021-03-19 15:04
  • 閲讀 ( 48 )

什麼是刮網?如何從網站收集資料

... 為什麼刮網有用 ...

  • 發佈於 2021-03-22 00:36
  • 閲讀 ( 43 )

7種讓你的網站或部落格更快地為訪問者載入的方法

緩慢的頁面載入速度是一個主要原因,為什麼你的網站沒有得到應有的點選率。 ...

  • 發佈於 2021-03-22 14:24
  • 閲讀 ( 59 )

什麼是google指令碼?如何編寫你的第一個谷歌應用程式指令碼

... 你能用google指令碼做什麼? ...

  • 發佈於 2021-03-22 18:15
  • 閲讀 ( 47 )
willawee
willawee

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦