1989年,互聯網面世,興起之初,每個網頁內容都是由副檔名為html的檔案所定義 。 使用者使用網頁瀏覽器 (web Browser) 對特定的 URI 發起 HTTP請求,請求會被傳送到指定的網頁伺服器 (web Server) 上,網頁伺服器會將對應的HTML檔案傳回給使用者的網頁瀏覽器中,經過網頁瀏覽器的解析後,便呈現HTML的內容於畫面上。
比方說,我們在電腦的網頁瀏覽器上輸入一個網址,如 "https://redmadmedia.online" , 瀏覽器便會在網路找尋這網址的相關侍服器並作出頁面的要求,侍服器便會回傳index.html 這主頁頁面到該瀏覽器,並作出渲染(rendering),由此展現內容。
若向侍服器要求的是另一網頁頁面,只要知道該頁面的html 檔案之名稱,譬如是blog.html,那我們可在網頁瀏覽器上輸入"https://redmadmedia.online/blog" ,侍服器便會回傳該網頁之內容;當然,往往實作中主頁已有相關的按鈕連結讓使用者按下,而不用在網頁瀏覽器上輸入。
下圖顯示了這兩項操作。
這段時期,瀏覽器可做的事情非常有限,大多的網頁也只是顯示資訊而已,而主導著靜態頁面的版面設計是標記語言HTML和基於規則的語言CSS所支配,前者支配頁面的結構,後者則是控制各HTML元件的外貌樣式;嚴格而言,這兩種語言均不是程式語言,只是一種 Markup 語言,用來修飾頁面。
靜態頁面只讓使用者瀏覧資料,欠缺互動,所以網站的頁面發展很快就由靜態轉為動態頁面,一些頁片的互動部份,如用者按下某HTML元件會產生某些特殊的動畫效果,則需要用上程式語言JavaScript,由於這些程式是寫在頁面底部,所以叫「腳本語言(scripts) 」,這些腳本程式會隨頁面從後端傳送至前端,程式碼是公開可見的,但因這些程式也只是牽涉頁面的互動效果,不涉敏感個人資料,讓公眾看見也無妨。
此階段JavaScript 的用途並不太顯著,只令頁面外觀上多點生氣,並未主導整個網站堆疊與構成。
在頁面互動層面上,有些情況所牽涉的資料較為敏感,並不能公開,亦即不會隨頁面回傳到前端使用者處,而且後端亦需要一個地方儲存資料,典型的例子是會員名稱和密碼與及網上購物時的購物籃和信用咭資料。
於是,侍服器便出現後端的程式語言和資料庫,最常用的分別是PHP和MySQL,前者負責拮取後者的可公開的資料隨頁面回傳給前端,同時亦監控著前端的使用者狀態(state),確保是同一身份在操作。
發展至這個地步,是一個完整的網站堆疊,名為LAMP stack ,包括了四組程式: Linux(基本作業系統)、Apache(侍服器程式)、Mysql (資料庫)和Php(後端程式語言),是傳統建構網站的方法。