Web應用程序

2007年Horde的屏幕截圖,Horde,一個組件和開源Web應用程序

Web應用程序(或Web應用程序)是使用Web瀏覽器訪問的應用程序軟件。 Web應用程序在萬維網上交付給具有主動網絡連接的用戶。

歷史

在諸如客戶端服務器之類的早期計算模型中,該應用程序的處理負載是在服務器上的代碼和每個客戶端上安裝的代碼之間共享的。換句話說,一個應用程序具有自己的預編譯客戶端程序,該程序充當用戶界面,必須在每個用戶的個人計算機上分別安裝。對應用程序的服務器端代碼的升級通常還需要升級到每個用戶工作站上安裝的客戶端代碼,從而增加了支持成本並降低生產率。此外,應用程序的客戶端和服務器組件通常都與特定的計算機體系結構操作系統緊密綁定,並且將它們移植到其他應用程序中通常是昂貴的,除了最大的應用程序以外的所有人(如今,移動設備的本機應用程序也被丟棄了通過某些或全部上述問題)。

1995年, Netscape引入了一種稱為JavaScript客戶端腳本語言,允許程序員在客戶端運行的用戶界面中添加一些動態元素。因此,下載頁面的嵌入式腳本可以執行各種任務,例如輸入驗證或顯示/隱藏頁面的部分。

1999年,在Servlet規範版本2.2中以Java語言引入了“ Web應用程序”概念。 [2.1?]。當時,JavaScript和XML都已經開發出來,但是Ajax尚未創造,並且XMLHTTPRequest對象最近才最近在Internet Explorer 5上引入了ActiveX對象。

自2000年代初以來,諸如Gmail之類的應用程序開始使他們的客戶方面越來越互動。網頁腳本可以在不下載整個網頁的情況下與服務器聯繫以存儲/檢索數據。這種做法在2005年被稱為阿賈克斯。

設計師Frances Berriman和Google Chrome工程師Alex Russell在2015年創造的術語“ Progressive Web Apps ”是指利用現代瀏覽器支持的新功能的應用程序,該應用程序最初在Web瀏覽器選項卡中運行,但後來可以完全離線和下線和運行可以在不輸入瀏覽器中的應用程序URL的情況下啟動。

結構

傳統的PC應用程序通常是單層的,僅位於客戶端計算機上。相比之下,Web應用程序固有地促進了多層體系結構。儘管可能發生了許多變化,但最常見的結構是三層應用程序。以最常見的形式,這三個層被稱為演示應用存儲。網絡瀏覽器是第一個層(演示),是使用某些動態網絡內容技術的引擎(例如ASPCGICOLDFUSIONDARTJSP/JAVANODE.JS ,pHP, PHPPYTHONRUBY在Rails上) (應用程序邏輯),數據庫是第三層(存儲)。 Web瀏覽器將請求發送到中間層,該請求通過針對數據庫進行查詢和更新並生成用戶界面來為它們提供服務。

對於更複雜的應用程序,一個3層解決方案可能會缺乏,並且使用N級方法可能是有益的,其中最大的好處是打破居住在應用程序層的業務邏輯,成為更細粒度模型。另一個好處可能是添加一個集成層,通過提供易於使用的界面來訪問數據,將數據層與其他層次分開。例如,將通過調用“ List_clients()”函數而不是直接針對數據庫上的客戶端表進行SQL查詢來訪問客戶端數據。這允許替換基礎數據庫,而無需對其他層進行任何更改。

有些人將Web應用程序視為兩層體系結構。這可以是一個“智能”客戶端,可以執行所有工作並查詢“愚蠢”服務器,也可以是依賴“智能”服務器的“愚蠢”客戶端。客戶端將處理演示文稿層,服務器將具有數據庫(存儲層),並且業務邏輯(應用程序層)將在其中一個或兩者上。儘管這增加了應用程序的可擴展性並將顯示和數據庫分開,但它仍然不允許對圖層進行真正的專業化,因此大多數應用程序都會超越該模型。

安全

對這類應用程序的安全漏洞是一個主要問題,因為它可以涉及企業信息和私人客戶數據。保護這些資產是任何Web應用程序的重要組成部分,開發過程中必須包括一些關鍵的運營領域。這包括用於身份驗證,授權,資產處理,輸入以及記錄和審計的過程。從一開始就將安全性構建到應用程序中可能會更有效,並且從長遠來看會更少破壞。

發展

通過使用Web應用程序框架來簡化Web應用程序。這些框架通過允許開發團隊專注於其目標的各個部分而無需解決常見開發問題(例如用戶管理),從而促進了快速的應用程序開發。使用的許多框架是開源軟件

此外,儘管目前沒有很多適合此模型的可行平台,但仍有在Internet操作系統上開發應用程序的潛力。

也可以看看