首先區分動態和靜態網站。簡單的說,靜態網站中的頁面是預存在Web服務器上的文件,而動態網站的頁面是根據服務器端數據庫中的數據和狀態動態生成的,因而動態頁可以實現復雜的業務功能,需要學習的技術也更多。
做靜態網站需要HTML,CSS和(少量)Javascript的知識,可以認為是對瀏覽器編程;做動態網站除了需要HTML,CSS,Javascript之外,還需要對Web服務器編程,這方面的技術很多,比較流行的中小網站的技術組合有:
(1) Linux (服務器的操作系統)+ Apache或Nginx(Web服務器軟件)+ MySQL或Oracle或其他Linux下的數據庫 (數據庫軟件) + PHP或Python或JSP或Ruby on Rails或其他(負責動態網頁生成的語言)
(2) Windows Server (操作系統) + IIS (Web服務器) + Microsoft SQL Sever (數據庫) + ASP (動態網頁語言)
大型的動態網站還有負載均衡,多層緩存優化,冗余備份,安全管理等等諸多專門的技術,很多使用自己開發或者定制的代碼庫作為數據庫和網頁的中間層,這里不再展開。
問:還有其他需要學習的嗎?
答:HTML+CSS+Javascript+Apache+Mysql+PHP基本上可以讓你在不需要花錢買軟件的情況下搭起來小型的動態網站。進一步鑽研,技術當然還有很多。比如,可以學習各種網站的框架和模板、可以學習Linux服務器的安裝配置,可以學習TCP/IP了解因特網的原理和信息傳遞,等等。
問:怎樣安排其學習順序?
首先在W3School上學好HTML+CSS,尤其是DIV這個標簽,這一步很容易,很多都是美工干的活;然后你裝上Apache(或者其他web服務器,參見第一問)配置一下就可以做靜態網頁了。
接着可以同步學習PHP(或者其他動態語言)和Javascript,尤其是Ajax這樣的異步技術,這需要花不少時間。Mysql和Apache的進一步安裝配置會貫穿在學習PHP的過程中。同時為了掌握MySQL,你至少需要一些最基本的數據庫(SQL語言)的知識。
Apache+Mysql+PHP這條工具鏈的好處是網上可以下載到大量的開源代碼,一般常見的網站框架(論壇、圖片庫、新聞站、維基)都不需要從頭開始編碼,源碼拿過來改一改定制一下就可以上線了,同時你也可以通過這些源碼來學習PHP(或者其他動態語言)。