2010年9月18日 星期六

CGI 如何工作

網頁程式是由一系列的HTML,CSS.JAVASCRIPT 和程式語言所構成
,例如在Windows 平台很有名的 asp.net,c#..及通用平台上也是
世界最多開發者所使用的 php.

我們常講的網頁程式其實主要包括了兩大部份
伺服器端:
指的是由網頁伺服器軟體所運行的一台主機,用以提供各式各樣的服務
像是網路購物,部落格,新聞媒體,搜尋服務....等,一般以apache和
iis佔大部份

客戶端:
指是的一般使用者的所用的上網設備,通常是個人電腦裡的瀏覽器包含
ie,firefox,chrome......

那客戶端如何和伺服器端進行溝通呢?
主要是透過網際網路協定裡的Http 協定,也就是常聽到的WWW,80port
80 Port是指 Http 協定運行所使用的端口號碼,這個號碼是由IANA所
制定的,在1-1024 號碼裡的端口,通常都由特定的協定使用而不可被佔用
,例如 SSH-22,WWW-80,FTP-21,20,SMTP-25,POP3-110.......
,而CGI是在HTTP上所運行的一個通訊介面,由客戶端送出一個 Request,
再由伺服器端回應一個 Response而成

以下所有的範例,我們將以php做簡單的程式,來講述CGI的運行方式
一個最簡單的CGI,在getName.php裡我們以POST的方法,將使用者輸入的
姓名傳送至後方的SERVER端,在後方的伺服器端,則以一個變數name取得客
戶端傳送來的資料,並將其顯示在頁面中
getName.php
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>First CGI example</title>
</head>

<body>
<form method="post" action="returnName.php">
Please enter your name:<input type="text" name="name" /><br />
<input type="submit" value="submit" />
</form>
</body>
</html>
?php>

returnName.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Return your name</title>
</head>

<body>
$name = $_POST['name'];
<h2>Your name is . $name</h2>
</body>
</html>

沒有留言:

張貼留言