搭建網站需要學習什麼(轉自知乎)

而遠之發表於2014-04-13

首先區分動態和靜態網站。簡單的說,靜態網站中的頁面是預存在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(或者其他動態語言)。

相關文章