今日は、WEBサーバとAPサーバの違いの日。
目次
とある日
Twitterでとある投稿を見た。(どのツイートだったか探したがなかった)
内容は、”WebサーバとAPサーバの違いわからない人いそう”だった。
このツイートを見て、自分は同じじゃないの?と思った。
なので、両者を意味を理解し違いを把握することが今回の目的とする。
ではさっそく両者について調べる。
WEBサーバ
Wikipediaだと上記の画像のように、定義されている。
Webサーバーは、クライアントからのリクエストを解釈し、サーバー上に用意された該当ファイルを返すことが基本となっている。
つまり、http://localhostやhttps://www.oracle.com/jp/にアクセスしてindex.htmlを返すサーバのことを、Webサーバと呼ぶ。
このWebサーバ上で用意するファイルを作成するのがフロントサイドの仕事だと思う。
Webサーバーソフトウェア
Webサーバーソフトウェアは、クライアントからのリクエストを正しいレスポンスを返すプログラムを実行するシステムになる。
Webサーバを構築とは、このソフトウェアを正しく設定し、リクエストを待ち受ける状態を作ることになる。
そのソフトウェアにも、種類があり有名所について調べる。
1.Apache
言わずとしれた、Webサーバソフトウェアのデファクトスタンダードになっている。
Apacheだと、XAMPPというソフトウェアで簡単に起動ができる。
XAMPPは、Apacheの他にMySQL、Tomcatがスイッチひとつで簡単に起動可能。
何度かお世話になったことがある。
構築作業も、システム起動やポート開放という単純作業で構築可能。
2.Nginx
Apacheの次に、よく使用されるソフトウェアである。
一度しか構築したことないがあまり難しい印象はなかった。
両者ソフトウェアの違いは、性能差やアクセスの処理方法などが違う。
個人開発するなら、Apacheで構築したほうが無難な感じがする。
APサーバ
要するに、APサーバはWebサーバから受け取ったリクエストをもとに、JavaやPython、Rubyなどのプログラムを実行し、Webサーバに結果を返すもの。
JavaやPythonのプログラムが動く環境を構築するのがAPサーバになるということになる。
APサーバは、DBサーバへのアクセスを行う場所となる。
全体のシステムの流れとしてWebサーバ→APサーバ→DBサーバの処理の流れとなる。
両者の違い
Webサーバは、静的コンテンツを扱う。
APサーバは、動的コンテンツを扱う。
Webサーバは、HTML/JavaScriptを扱う。
Webサーバは、クライアントからアクセスを受ける。
APサーバは、Webサーバからアクセスを受ける。
自分が思った違いはこのくらい。
WebサーバとAPサーバの役割を同じサーバで行っているものもある。
〆
調べてみると、両者は明確な違いが存在するがそれを意識して開発を行うのは難しいと思った。
各所で、処理内容を意識して開発を行うことが大切だと感じた。