#はじめに
転職活動用のポートフォリオを作成中です。今回AWSを利用したデプロイを行いました。そこで「Webサーバー」と「アプリケーションサーバー」という概念が登場したため、違いや概要などを備忘録及び復習のため記事を投稿します。
#そもそもサーバーとは??
サーバーって何?と聞かれて、詰まってしまったので今回は こちらの記事を参考にさせていただきました。
👉「ユーザーのリクエスト(要求)を受け取り、正しいレスポンス(結果)を返す」という役割。「ユーザーがリクエストとして、URLをサーバーに送り、サーバーはレスポンスとしてビューページのファイルをユーザーに返す」イメージ。
上記に掲載している記事では「レストランのウェイター」というイメージで例えられていました。なるほど。。。
また、サーバーの中身は、ハードウェア・OS・ミドルウェア・アプリケーションで構成されており、今回のテーマである、Webサーバーとアプリケーションサーバーは「ミドルウェア」に位置するそうです。
それでは本題に入ります。
#Webサーバーとは
👉静的コンテンツ(リクエストの度に内容が変更されないファイル(画像・文章など)のこと)のみをリクエストとしてクライアントに返す役割。
ここで言う「クライアント」とは、サイトを閲覧するブラウザのことを示します。Nginxなど
#アプリケーションサーバーとは
👉動的コンテンツ(リクエストの度に内容が変更されるファイルのこと)を生成し、処理結果をWebサーバーに返すという役割を果たします。具体的にはアプリケーションサーバーが、アプリケーションサーバー内に設置されているアプリケーション本体にリクエストの指令を出します。アプリケーション本体が処理を完了すると、アプリケーションサーバーはその処理結果をレスポンスとしてWebサーバーに返します。Unicornなど
#処理の流れ
上記で記載した処理の流れを記述すると、
①クライアントからのリクエスト全てが、まずWebサーバーに送られる
②Webサーバーが、「Webサーバー内で処理することができる」と判断すれば、ブラウザにレスポンスを返す。
※Webサーバー内で処理できるものとは、データベースを介さず、静的コンテンツのみをリクエストとして返却するもの。
③「Webサーバー内で処理することができない」と判断されれば、処理をアプリケーションサーバーに依頼し、アプリケーションサーバー内で処理する。
④アプリケーションサーバーでの処理結果をWebサーバーに返す。
⑤Webサーバーはアプリケーションサーバーから帰ってくる処理をブラウザにレスポンスとして返す。
と言う流れになると思います。