「静的ホスティングか動的ホスティングか」は過去の二項対立を引きずる現象
JavaScriptが今のように使われるようになる前は対立構図がわかりやすかった
- 静的: 典型的にはファイルの内容をそのまま配信する。誰がアクセスしても同じ内容
- 動的: 典型的にはPerlのCGIやPHP、サーバでプログラムが実行され、メモリ上にコンテンツが生成され、それが配信される。アクセスする人によって内容が異なる
動的な、人によって異なる内容の配信の需要が高まった サーバの負荷が問題になった
- JavaScriptの速度の改善や、言語としての改善により、大規模なJavaScriptプログラムをクライアントサイドで実行することが可能になった
- CDNの登場: 静的コンテンツをキャッシュすることによって高速な配信やサーバへの負荷の集中が避けられるようになった
これによって、ユーザに動的な体験をもたらしつつ、それをなるべく静的な配信で行おうというアプローチが行われるようになった 認証機能やデータベース機能をAPI経由で提供するサービスが発展したことによって「ユーザに動的な体験を提供するが、サーバサイドのプログラムは皆無」という状況が生まれた
- サーバレスという言葉はこれを指して使われることもある
この技術が普及した現代において、サーバサイドの処理が必要な典型的なユースケースはOpen Graph Protocolのサポートである
- JavaScriptを実行しないクローラのために「ユーザによって変化しない」という意味で「静的」なHTMLや画像を、「サーバ上でプログラムが生成する」という意味で「動的」に作り出す必要がある
- これはCDNによってキャッシュできる