クライアントサーバーのような初期のコンピューティングモデルでは、アプリケーションの処理負荷は、サーバー上のコードと各クライアントにインストールされたコードがローカルに分担していました。 言い換えれば、アプリケーションには、ユーザーインターフェイスとして機能するコンパイル済みのクライアントプログラムがあり、各ユーザーのパーソナルコンピュータに個別にインストールする必要がありました。 また、アプリケーションのサーバー側のコードをアップグレードするには、各ユーザーのワークステーションにインストールされているクライアント側のコードもアップグレードする必要があり、サポートコストの増加や生産性の低下を招いていました。
これに対して、Webアプリケーションは、HTMLやJavaScriptなどの標準的なフォーマットで書かれたWebドキュメントを使用しており、さまざまなWebブラウザでサポートされています。 Webアプリケーションは、クライアント・サーバー型ソフトウェアの一種であり、HTTPなどの標準的な手順を用いて、該当するWebページにアクセスした際に、クライアント・ソフトウェアがクライアント・マシンにダウンロードされるものと考えられます。 クライアントソフトウェアの更新は、Webページにアクセスするたびに行われることがあります。
Webの初期には、個々のWebページは静的なドキュメントとしてクライアントに配信されていましたが、一連のページでは、ページのマークアップに埋め込まれたWebフォーム要素を通じてユーザーの入力が返されるため、インタラクティブな体験を提供することができました。
1995年、NetscapeはJavaScriptと呼ばれるクライアントサイドのスクリプト言語を導入し、プログラマーがクライアントサイドで動作するユーザーインターフェースに動的な要素を追加できるようにしました。
1996年、MacromediaはFlashを発表しました。これは、ウェブページにアニメーションを埋め込むためのプラグインとしてブラウザに追加できるベクター・アニメーション・プレイヤーです。
1999年には、Java言語のServlet Specification version 2.2で「Webアプリケーション」という概念が導入されました。
2005年には、Ajaxという言葉が生まれ、Gmailなどのアプリケーションがクライアント側をよりインタラクティブなものにし始めました。
2007年、スティーブ・ジョブズは、AJAXアーキテクチャを使用してHTML5で開発されたWebアプリが、iPhoneアプリの標準フォーマットになると発表しました。 ソフトウェア開発キット(SDK)を必要とせず、Safariブラウザエンジンを介してデバイスに完全に統合されます。
2014年には、クライアントサイドのプラグインを必要とせず、グラフィックやマルチメディアの機能を提供するHTML5が完成しました。 また、HTML5はドキュメントのセマンティックコンテンツを充実させました。 APIやDOM(ドキュメント・オブジェクト・モデル)はもはや後付けではなく、HTML5の仕様の基本部分となっています。 WebGL APIは、HTML5のキャンバスとJavaScript言語をベースにした高度な3Dグラフィックスへの道を開きました。 これらは、真にプラットフォームやブラウザに依存しないリッチなWebアプリケーションを作成する上で重要な意味を持っています。
2016年、毎年恒例のGoogle IOカンファレンスにおいて、エリック・バイデルマン氏(Senior Staff Developers Programs Engineer)は、Web開発の新しいスタンダードとしてProgressive Web Apps(PWA)を紹介しました。 マイクロソフトのプリンシパルプログラムマネージャーであるジェフ・バートフト氏は、”GoogleがProgressive Web Appsを先導し、長いプロセスを経て、完全にサポートする必要があると判断しました。”と述べています。 このように、マイクロソフトとグーグルはともにPWA規格をサポートしました。