在較早的網路架構(如客戶機 - 伺服器)中,應用程式的處理負載在伺服器上的代碼和本地安裝在每個客戶機上的代碼之間共享。換句話說,一個應用程式有自己的預編譯客戶端程式作為其使用者介面,必須分別安裝在每個使用者的個人電腦上。升級到應用程式的伺服器端代碼通常還需要升級到安裝在每個使用者工作站上的客戶端代碼,這增加了技術支援成本並降低了生產力。此外,應用程式的客戶端和伺服器組件通常都與特定的電腦系統結構緊密相連,作業系統並將它們移植到其他作業系統對於除了最大的應用程式之外的所有作業系統而言都是非常昂貴的 (現在,用於行動裝置的本地應用程式也受到一些或所有上述問題的困擾。)
相反,網頁應用程式使用由各種網頁瀏覽器支援的標準格式(如HTML和JavaScript)編寫的網頁。網頁應用程式可被視為客戶端 - 伺服器軟體的特定變體,其中客戶端軟體在使用諸如HTTP的標準程式訪問相關網頁時被下載到客戶端機器。每次造訪網頁時都可能會發生客戶端網頁軟體更新。在對談期間,網頁瀏覽器解釋並顯示頁面,並作為任何網頁應用程式的通用客戶端。
在全球資訊網的早期,每個單獨的網頁作為一個靜態文件被傳送到客戶端,但是由於使用者輸入是通過嵌入在頁面標記中的網頁的
1995年,網景引入了一種稱為JavaScript的客戶端指令碼語言,允許程式設計師在客戶端執行的使用者介面中添加一些動態元素。因此,為了生成整個網頁而不是將資料傳送到伺服器,下載頁面的嵌入指令碼可以執行各種任務,例如輸入驗證或顯示/隱藏頁面的一部分。
1996年,Macromedia引入了Flash,這是一種向量動畫播放器,可以作為外掛程式添加到瀏覽器中,以在網頁上嵌入動畫。它允許使用手稿語言來編程客戶端的互動,而不需要與伺服器通訊。
在1999年,「Web應用程式」概念在Servlet Specification 2.2版中以Java語言引入。[2.1?]。[1][2]當時JavaScript和XML已經被開發出來,但Ajax還沒有被創造出來,並且XMLHttpRequest對象在2008年才作為ActiveX對象在Internet Explorer 5上引入。
2005年,Ajax這個詞被創造出來,像Gmail這樣的應用程式開始使他們的客戶端越來越靈活。網頁尾本能夠聯絡伺服器來儲存/檢索資料,而無需下載整個網頁。
在2011年,HTML5被定稿,提供圖形和多媒體功能,而不需要客戶端外掛程式。HTML5也豐富了文件的語意內容。API和文件物件模型(DOM)不再是事後的,而是HTML5規範的基礎部分。WebGL API為基於HTML5的canvas和JavaScript語言的進階3D圖形鋪平了道路。這些在創造真正的平台和瀏覽器獨立顯著重要性的多樣化網際網路應用程式。