MasteringVFP/17/1
出自VFP Wiki
MasteringVFP/17/1
的原始碼
跳轉到:
導航
,
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
你所請求執行的操作被禁止。
你可以檢視並複製本頁面的原始碼。
[[category:MasteringVFP/17]] ===VFP與CGI=== 在網址上有時候會看到類似 <b>http://www.your_site.com/xxx.exe?xxx=yyy</b> 的網址,那並不是一個常見的 .exe, 而是實做了 CGI 介面的 .exe. 甚麼是 CGI ?? CGI 的全名是 Common Gateway Interface,也就是一種介面。只要你的應用程式實做此一介面,Web server 就可以據此與你的應用程式溝通。 怎麼溝通呢?HTML 裡面有所謂的 Form,你可以指定 Form 的 method 為 POST 或 GET。POST 與 GET 決定了 CGI 該怎麼去取得資料;如果是 POST,那麼 Web server 會把這些資料放到 STDIN (標準輸入資料流)去,你的 CGI 就應該使用標準輸入函數去讀取這些資料;如果是 GET,Web server 會把這些資料放到名為 QUERYSTRING 的環境變數裡,於是你需要使用取環境變數的函數來取得這些資料。至於輸出的部份,統一都是輸入到 STDOUT (標準輸出資料流)。 之後的所有技術都與 CGI 脫不了關係,都是以 CGI 為基礎發展出來的。所以會了 CGI 之後,後面也會了一半。 事實上,VFP在配合Win32 API 之後,是可以實做出CGI介面的,關鍵的API在於 ReadFile / GetENV / WriteFile 這幾個API。ReadFile 可以讀取 STDIN (標準輸入資料流),GetENV 則可以取得環境變數,於是你已經可以取得 POST 或 GET 的資料。WriteFile 可以輸出到 STDOUT (標準輸出資料流)。 在網路上可以搜索到不少資料: *用VB開發標準CGI程序 _ 安全中國http://anqn.com/dev/vb/a/2005-08-30/a52663.shtml *Google 網上論壇 : microsoft.public.fox.programmer.exchange http://groups.google.com.tw/group/microsoft.public.fox.programmer.exchange/browse_thread/thread/51297d29e4c3e99c/2147429131fd30e5%232147429131fd30e5?sa=X&oi=groupsr&start=0&num=3 第二個連結裡面有 VFP 的 sample. 實做CGI以後,你需要考量的是當 Request 過多時的問題。當 request 過多的時候,CGI 的效能並不好。因為 web server 在遇到 request CGI 的時候,會為這個 CGI create 一個 process 起來。當同時遇到 1000, 10000, 100000 ....個 request 的時候,web server 就會去 create 1000、10000、100000 ....個 process, 這會拖垮整個 server 的效能!! 這也是後來為甚麼 script 會大為盛行的原因,因為他們所需要的資源較少,處理以及除錯上也較為方便,不過基礎原理還是一樣的。
返回到
MasteringVFP/17/1
。
檢視
頁面
討論
原始碼
歷史
個人工具
登入/建立新帳號 選單
導航
首頁
社群入口
現時事件
近期變動
隨機頁面
使用說明
搜尋
工具箱
鏈入頁面
相關頁面修訂記錄
所有特殊頁面