[6] [DFN[[RUBYB[[[Webアプリケーション]]]@en[Web application]]]]は、
[[Webプラットフォーム]]上で動作する[[アプリケーション]]です。

[7] [[HTML]] を中心とする[[ハイパーテキスト]]アプリケーションとして記述され
[[Webブラウザー]]上で動作する[[クライアント]]側と、
任意の[[プログラミング言語]]や[[ライブラリー]]によって記述され[[クライアント]]と
[[HTTP]] で通信する[[サーバー]]側にまたがって構成され、
時に他の [[Webアプリケーション]]と協調しつつ動作します。

* 意味

[10] [[Webアプリケーション]]という語の指す範囲は、曖昧です。

[11] 普通は[[Webブラウザー]]と[[Webサーバー]]にまたがって動作するもの全体を
[[Webアプリケーション]]といいますが、
文脈によっては[[クライアント]]側部分のみ、あるいは[[サーバー]]側部分のみを指すこともあります。

[12] [[サーバー]]と[[クライアント]]にまたがるといっても、
[[サーバー]]は単に[[静的ファイル]]を供給するのみのものや、
[[クライアント]]は単に[[静的ファイル]]を[[レンダリング]]し適宜[[利用者]]の操作を受け付けるだけのものもあります。

[13] [[サーバー]]が [[Web API]] のような形で [[Webブラウザー]]以外の[[クライアント]]に対して機能を提供する場合、
それも[[Webアプリケーション]]の一部と捉えられることがあります。

[14] [[クライアント]]が[[スマートフォンアプリ]]等の専用ソフトウェアの場合、
それも[[Webアプリケーション]]の一部と捉えられることがあります。

[EG[
[18] [[掲示板]]システムが [[HTML]] と [[HTTP]] で
[[Webブラウザー]]を使う[[利用者]]に閲覧や書き込みの機能を提供したり、
[[JSON]] と [[HTTP]] を介して専用クライアントソフトウェアを使う[[利用者]]に同様の機能を提供したりする場合、
これは全体として [[Webアプリケーション]]であると言えます。
]EG]

;; [15] ただし、専ら特定の専用クライアントソフトウェアのみに [[API]]
を提供する[[サーバー]]は、たとえ [[HTTP]] や [[JSON]] や [[HTML]]
を使っていたとしても、 [[Webアプリケーション]]とは言い難いでしょう。

[EG[
[16] 例えば[[サーバー]]が[[スマートフォンアプリ]]に [[JSON]]
形式で [[HTTP]] 経由でデータを送信するだけのシステムは、
[[Webアプリケーション]]であると説明するのには無理があります。
]EG]

[EG[
[17] [[HTML]] + [[CSS]] + [[JavaScript]] の[[文書]]群を特定の[[ゲーム]]のソフトウェア中の[[組み込みブラウザー]]に対してのみ
[[HTTP]] で提供するシステムが [[Webアプリケーション]]と言えるかどうかは、
見解が分かれるかもしれません。技術的には [[Webアプリケーション]]のものを流用していますが、
エコシステムとしての [[Web]] の一部とは言えないかもしれません。
]EG]

;; [19] [[Webプラットフォーム]]の範囲もまた、曖昧です。

* 技術

[9] [[WWW]]、[[Webプラットフォーム]]、[[Webブラウザー]]、[[Webサーバー]]を参照。

* アプリケーション (プッシュ)

[23] 
[[Web Push]]
における[DFN[[RUBYB[アプリケーション][application]]]]は、
[[プッシュメッセージ]]の[RUBYB[[[送信者]]][sender]]と[RUBYB[最終[[消費者]]][ultimate consumer]]の両方です。
多くの[[アプリケーション]]は、
[[利用者エージェント]]上で動作する[RUBYB[[[部品]]][component]]と、
[[サーバー上で動作する部品][アプリケーションサーバー]]を持ちます。
[SRC[>>22]]

[24] 
[[Web Push]] の[[アプリケーション]]はこのような 
[[Webアプリケーション]]の性質から [[Web Push]]
に関係する部分を取り出した定義になっています。
[[Webアプリケーション]]と限定はしておらず、
理論上、
[[ネイティブアプリケーション]]などでも同様な構成のものが当てはまるようになっています。
(実際そのような使われ方がしているかは不明です。)

[REFS[
- [22] [CITE@en[RFC 8030 - Generic Event Delivery Using HTTP Push]], [TIME[2020-03-09 00:13:33 +09:00]] <https://tools.ietf.org/html/rfc8030#section-1.1>
]REFS]

* 関連

[8] [[Webプラットフォーム]]、[[Webブラウザー]]、[[Web標準]]も参照。

[20] しばしば、[[ネイティブアプリ]]や[[スマートフォンアプリ]]の対義語として用いられます。


;; ですが、[[Webアプリケーション]]の専用クライアントソフトウェアや、
[[ネイティブアプリ]]の[[コンポーネント]]としての[[組み込みブラウザー]]の利用のことを考えると、
両者は必ずしも相反するものではありません。

[21] [[利用者]]に提供される[[サービス]]としての側面に注目して、
[[Webサービス]]と呼ぶこともよくあります。

* メモ

[25] [CITE@EN-US[Web Workshop - Building the Dynamic HTML Web Application]], [[Nancy Cluts]], [TIME[2024-08-17T06:03:27.000Z]], [TIME[2000-12-02T22:20:07.273Z]] <https://web.archive.org/web/20001202221800/http://msdn.microsoft.com/workshop/author/dhtml/buildingwebapp.asp>

[26] >>25 [[Webアプリケーション]]という語のかなり早い例?


[27] [CITE[The W3C Workshop on Web Applications and Compound Documents]], [TIME[2005-01-13T13:52:57.000Z]], [TIME[2024-10-05T05:30:00.554Z]] <https://www.w3.org/2004/04/webapps-cdf-ws/>

>The W3C has started developing a new Activity in this area called Web Applications. The intention is to have a Working Group doing Combined Documents with a focus on Mobile Computing, and a Working Group to begin examining requirements for Web Applications. The public are encouraged to give feedback on the mailing list. 



[1] [CITE@en[The 'view-mode' Media Feature]]
( ([TIME[2012-02-14 20:43:41 +09:00]] 版))
<http://dev.w3.org/2006/waf/widgets-vmmf/#dfn-web-application>

[FIG(quote)[
[FIGCAPTION[
[2] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]]
([TIME[2014-12-15 14:15:35 +09:00]] 版)
<http://tools.ietf.org/html/rfc6749#section-2.1>
]FIGCAPTION]

> 
>    web application
>       A web application is a confidential client running on a web
>       server.  Resource owners access the client via an HTML user
>       interface rendered in a user-agent on the device used by the
>       resource owner.  The client credentials as well as any access
>       token issued to the client are stored on the web server and are
>       not exposed to or accessible by the resource owner.

]FIG]


[3] [CITE@en[Setting the scope for light-weight Web-based applications]]
([TIME[2004-03-27 02:59:08 +09:00]] 版)
<http://www.w3.org/People/Bos/webapps.html>

[4] [CITE@en[A proposal for Webapps]]
([TIME[2006-08-18 03:48:15 +09:00]] 版)
<http://www.w3.org/People/Bos/webapps-proposal.html>

[5] [CITE@ja[はてなで大規模サービスのインフラを学んだ - ゆううきブログ]]
([[y_uuki]] 著, [TIME[2015-07-30 10:28:54 +09:00]] 版)
<http://yuuki.hatenablog.com/entry/large-scale-infrastructure>