環境變數學習
在進行cgi程式設計的開始之前,我們必須先了解一下web伺服器提供的一些常用的環境變數,因為我們的程式設計與他們是息息相關的,雖然不會完全用到。在apache安裝配置完成之後,則可以用它提供的cgi程式text-cgi來檢視cgi環境變數的值,其內容如下:
可以發現這是乙個非常典型的shell指令碼,這可以說明shell也是可以寫cgi程式的。在我的windows下的世界之窗瀏覽器下顯示的結果如下
cgi/1.0 test script report:
argc is 0.argv is.
server_software=apache/2.2.14(unix) /*web伺服器的版本和所使用的作業系統*/
server_name=192.168.1.2 /*由於我沒有做dns所以伺服器名字以ip顯示*
gateway_inte***ce=cgi/1.1 /*cgi的版本*/
server_protocol=http/1.1 /*http協議版本,這是最新版*/
server_port=80 /*web伺服器的埠號*/
request_method=get /*客戶端得請求方式*/
http_accept=*/* /*客戶端所能接受的mime檔案的型別*/
path_info=
path_translated=
script_name=/cgi-bin/test-cgi /*cgi程式的資訊*/
query_string=
remote_host=
remote_addr=192.168.1.67 /*這是我的客戶端的ip*/
remote_user=
auth_type=
content_type=
content_length= /*在請求方式為post是這裡為表單的位元組數*/
具體的環境變數如下描述:
reouest_method:這個環境變數指出伺服器與cgi程式之間的資訊傳遞方式。一般包括兩種:post和get。這個環境變數能夠幫助確定請求是否是乙個表單的提交和確定使用者資料時怎樣用請求進行傳遞的。get是以明碼式附加到url後面傳送到伺服器的,在安全上不行且有位元組限制,但速度優於post。post資訊傳遞的資料對於使用者是不可見的再安全上由於get,且位元組數沒限制。
content_length:如果伺服器與cgi程式資訊的傳遞方式是post,這個環境變數即使從標準輸入stdin中可以讀到的有效資料的位元組數。這個環境變數在讀取所輸入的資料時必須使用。
query_string:如果伺服器與cgi程式資訊的傳遞方式是get,這個環境變數的值即使所傳遞的資訊。這個資訊經跟在cgi程式名的後面,兩者中間用乙個問號『?』分隔。例如:環境變數query_string的值為frist=hello&second=world.
content_file:當採用windows httpd/wincgi標準時,這個環境變數包含了用來傳送資料的檔名。
remote_addr:這個環境變數的值是傳送請求的客戶機的ip位址,例如上面的192.168.1.67。這個值總是存在的。而且它是web客戶機需要提供給web伺服器的唯一標識,可以在cgi程式中用它來區分不同的web客戶機。
remote_host:這個環境變數的值包含傳送cgi請求的客戶機的主機名。如果不支援你想查詢,則無需定義此環境變數。
auth_type:如果伺服器支援保護cgi程式的驗證機制,這個環境變數的值就是驗證機制的型別。
remote_user:如果環境變數auth_type被設定了,即cgi查詢受客戶機驗證機制保護,那麼這個環境變數將包含帶驗證機制的使用者名稱。記住,auth_tyoe與remote_user只有在使用者被伺服器成功地確認為合法使用者以後才被設定。
server_name:這個環境變數的值是internet domain名的全稱,它包含了伺服器的主機名或者其ip位址。例如上面是伺服器的ip :192.168.1.67.這個值在伺服器的管理中的general中設定。
server_port:這個環境變數的值包含了伺服器接受請求時所使用的埠號,web伺服器使用這個埠來監聽到達的cgi請求。例如上面的值為80,也可能為8080。
server_protocol:這個環境變數的值包含了用於傳送請求的協議的名稱和版本號。目前,只有http支援cgi標準。例如,上面的值為http/1.1。
server_software:這個環境變數的值包含了呼叫cgi程式的http伺服器的名稱和版本號。例如,上面的值為apache/2.2.14(unix)
gateway_inte***ce:這個環境變數的值指示伺服器實現的cgi版本。例如其之可能為:cgi/1.1.因為cgi是乙個發展中的標準,因此這個環境變數對設計乙個cgi程式會有所幫助,因為這個程式可能會使用不同的web伺服器或者使用同乙個未必伺服器的不同版本。
script_name:這個環境變數的值包含了呼叫cgi程式時所使用的檔名。例如上面的值為/cgi-bin/test-cgi
path_info:這個環境變數的值表示緊接在cgi程式名之後的其他路徑資訊。它常常作為cgi程式的引數出現。
path_translated:只用部分伺服器支援這個環境變數。它包含cgi程式的完整路徑。例如,如果伺服器的根路徑是/usr/local/apache2/,而cgi程式的url標識是192.168.1.2/cgi-bin/hello.cgi,則環境變數path_translated所包含的值應為:/usr/local/apache2/cgi/bin/hello.cgi。
http_accept:這個環境變數的值是客戶機所支援的mime型別清單。各個型別之間用逗號分隔,例如image/gif,image/x-xbitmap,and*/*.星號*為萬用字元,表示可以接受任意資料型別。大多數伺服器和客戶機都未使用這個環境變數,以後的伺服器很可能可以把資料自動轉換成客戶機支援的格式
Cg語言介紹
在歷史上,圖形硬體都是從非常低層上進行開發的。通過設定狀態,例如貼圖合併 texture bining 模式,來設定固定功能的管線 pipelines 更近一些的時候,程式設計師可以通過使用組合語言層的程式設計介面來設定可程式設計管線。理論上來說,這些低層的程式語言提供了極大的靈活性。在實際應用中,...
Cg內建函式
abs x 返回輸入引數的絕對值 acos x 反餘切函式,輸入引數範圍為 1,1 返回 0,區間的角度值 all x 如果輸入引數均不為0,則返回ture 否則返回flase。運算 any x 輸入引數只要有其中乙個不為0,則返回true。運算 asin x 反正弦函式,輸入引數取值區間為 1,1...
CG插畫繪製!
我們先從繪製美女的大體色開始,先來看一下效果圖吧 開啟附盤中 相簿 第16章 目錄下名為 美女線稿.jpg 的檔案,如圖16 39所示。利用和工具,根據線描稿繪製並調整出整體輪廓路徑,如圖16 40所示。在 路徑 面板中將工作路徑命名為 輪廓 以備後用。新建 圖層 1 按 鍵將路徑轉換為選區,並填充...