可能有很多人都無法正確說出靜態網頁和動態網頁的區別,比較常見的答案是:

  1. 「網頁上有會動的圖片叫動態網頁」X 錯!那個叫Flash動畫(或動態GIF圖片),不是動態網頁。
  2. 「每一次連到頁面都會變叫動態網頁」X 錯!像大家在寫部落格每一次頁面都一樣,但是卻是動態網頁
  3. 「有HTML檔案的就是靜態網頁,沒有的就是動態網頁」X 錯!動態網頁還是可以使用.htm的檔名的
  4. 「有用到資料庫的叫動態網頁」O 答對了!雖然不是完全正確,但也接近了

靜態網頁

Internet網際網路最早就是以靜態網頁呈現在大家的面前的,那個時候網站上有許多的.htm或.html檔,以樹狀目錄結構儲存在網頁主機中,你的上網過程就是以瀏覽器來讀取這些檔案,最早的瀏覽器只能看文字,後來來慢慢發展出圖片,動畫圖片,聲音,影片等等現在大家可以看到的豐富內容。

而HTML全名「Hyper Text Markup Language」,中文翻譯為「超文本描述語言」,它只是一堆描述如何在你的瀏覽器呈現一些文字、圖片和「超連結」的語法,稱不上是一種程式語言,你可以回味一下10幾年前的網頁:World-Wide Web, HTML, Netscape tech documents是長什麼樣子,很單調無聊吧?但是Internet就是從這樣子的環境起來的。有興趣的人還可以點點看其中的連結,有許多都已經不存在了,因為這個頁面已經不再更新了!


而學過HTML的人就知道,你要對你網站中的所有HTML檔案的位置和名稱瞭若指掌,這是一件很花時間的事,而且很容易出錯,像大家現在部落格所用的版面配置來講,當你要把一個在邊欄的Widget移位置時,你可能要去修改許多的HTML檔,所以才會有動態網頁的出現。

動態網頁

動態網頁的核心就是使用資料庫來儲存網頁資料,而且透過主機端的即時「解譯」過程將網頁傳送至瀏覽器,就是說你真正編輯的檔案和在瀏覽器呈現的原始碼是不一樣的,像我現在用的WordPress為例,在後台的程式是以PHP的格式在運作,而你連到我的主機之後,主機會把這些PHP的語法轉換成為標準的HTML語法,傳送給你的瀏覽器,所以動態網頁對網頁主機的負載會比較大,因為主機不是只有單純傳送HTML檔案的工作而已,而是須要作許多的處理之後才將HTML送出。

運用動態網頁的技術,你可以將你的精力專注在「內容」部份,而不用花時間去管HTML檔案的關連性等複雜的東西,而且你可以將資料庫中的內容依不同的方式來呈現,而有網頁內容的搜尋也變的比較容易達成,請看看你的部落格是不是可以用「發文時間」、「文章分類」、「相關主題」、「隨機文章」、「關鍵字搜尋結果」等方式來呈現,讓不同的瀏覽需求能得到所需的內容。

動態網頁所使用的程式語言有:「CGI」、「ASP」、「PHP」、「JSP」、「Perl」等,最早期甚至還沒用到資料庫,而只是將一些資料儲存在特定的檔案中,所以在最前面的問答中我會說「不是完全正確」,而使用的資料庫也有許多種包括SQL、ORACLE、ACCESS、DBASE(FOXBASE)甚至連EXCEL檔都可以,但是除了你是專業的網管人員之外,你可以不在意它的運作方式,你只要專注於你要寫的內容就好了,所以現在人人都是「版主」都要感謝動態網頁技術所賜。

一個問題:「我有100篇文章,重灌狂人有5000多篇文章,在主機中的檔案數誰的比較多?」
如果我跟他用的是相同的WordPress程式版本,而外掛不計的話,答案是:「一樣多」,這就是動態網頁偉大的地方:「你不需要特殊的電腦技能就可以建構一個龐大的資訊系統」。

所以當你快樂的Blogging的時候,請給這些發明動態網頁技術的人一個最大的謝意,而這方法就是Web 2.0的核心精神:「分享」,最好的回報方式就是請你用力的發文,和大家一起「分享」。