Webアプリケーションという言葉を聞いたことがあるけれど、どのような仕組みになっているか分からないという方はいないでしょうか?
この記事ではWebアプリケーションがどのような仕組みで動いているのか見ていきます。
Webアプリケーションはコンピューター等のクライアントからのリクエストとWebサーバー等のサーバーからのレスポンスで動作しています。
サーバーはクライアントから受け取ったリクエストを処理し、処理結果をクライアントに送り返します。
サーバー側でクライアントから受け取ったリクエストを処理するプログラムをサーバーサイドプラグラムと呼びます。
一方、クライアント側でサーバー側から送られてきたレスポンスを処理するプログラムをクライアントサイドプログラムと呼びます。
このように、Webアプリケーションはリクエストとレスポンスのやりとりで成り立っています。
目次
1.サーバーサイドプログラムとは?
サーバーサイドプログラムとはサーバー上で動作し、クライアントにレスポンスするためのプログラムです。
サーバーサイドプログラムは具体的にどのような所で使用されているのでしょうか。
最近、私たちはECサイトで買い物することが増えてきています。
このECサイトではサーバーサイドプログラムが使用されています。
ECサイトでは顧客管理、注文内容、金額等のデータをサーバー側で管理しており、ユーザーに応じて保存するデータや表示するデータを変えています。
他にも、病院の予約管理、レストランの注文受付、レンタルショップの貸出情報等、様々な所でサーバーサイドプログラムが使用されています。
このようにサーバーサイドプログラムは私たちの見えない所で動作しており、私たちの情報を管理してくれています。
サーバーサイドプログラムに使用される言語は多岐にわたり、PHP、Ruby、Python、java、Perl等で作られています。
サーバーサイドプログラムを組むために言語の習得だけでなく、必要に応じてデータベースにデータ保存、検索、更新等を行うので、色々な知識が必要になります。
2.クライアントサイドプログラムとは?
クライアントサイドプログラムとはサーバーから送られてきた処理結果を基にクライアントで動作するプログラムです。
クライアントサイドプログラムは具体的にどのような所で使用されているのでしょうか。
私たちは調べたいことがある時、検索エンジンにURLを入力すると、Webサイトがブラウザに表示されると思います。
この時にWebサーバーからHTML、CSS、JavaScript等のファイルをクライアント側に送り、クライアントサイドプログラムが実行されてWebページが表示される仕組みになっています。
3.フレームワークとは?
Webアプリケーションのニーズが増えてきている中、迅速にWebアプリケーションを開発することが求められており、構築の都度、一からシステムを構築することは適切ではありません。
そこでフレームワークがWebアプリケーション開発で広く使われています。
できる限りWebアプリケーションの共通部分を予め開発して、共通する部分以外の機能開発に特化することで開発スピードを上げることができます。
フレームワークとは全体の処理の流れが実装されており、全体の処理の流れの一部を実装して付け加えることができるシステムのことです。
Webアプリケーション開発時に、複数のビジネスロジックをフレームワークとしてまとめることで、Webアプリケーションを効率的に開発することができます。
Webアプリケーションのフレームワークはクライアントサイドプログラムとサーバーサイドプログラムの両方で使われています。
フレームワークを使用するメリットは以下の通りです。
- 頻繁に使用される機能をフレームワーク化すると、Webアプリケーション開発期間を短縮することができます
- フレームワークを使用することでプログラミングを共通化することができます
- フレームワークで共通化されているため、Webアプリケーションのメンテナンスが容易になります
4.ライブラリとは?
フレームワークとライブラリはよく混同されがちですが、フレームワークとライブラリの意味は異なります。
フレームワークはある機能に対する設計の枠組みとして提供する一方、ライブラリは機能自体を提供します。
ライブラリの例として、圧縮、画像操作、ネットワークプロトコルなどの機能自体が挙げられます。
フレームワークとライブラリのイメージ図は以下の通りになります。
フレームワークのイメージ
5.ポイント
- サーバーサイドプログラムとはサーバー上で動作し、クライアントにレスポンスするためのプログラムです
- クライアントサイドプログラムとはサーバーから送られてきた処理結果を基にクライアントで動作するプログラムです
- フレームワークはある機能に対する設計の枠組みとして提供する一方、ライブラリは機能自体を提供します