ENGINNER

【超初心者向け】Webサーバーとはなにか?

こんにちは。もんしょー(@sima199407)です。

ある人
Webサーバーってそもそも何?どれくらい種類があるの?

という疑問があるかと思います。

以前以下のようなツイートをしました。

動画でも解説してます

Webサーバーとは?

エンジニアになる時って結構覚えること多いですよね。

HTML、CSSが終わったと思ったらRuby や PHP などのプログラム言語覚えて、次はデータベース行ったりとか大変だと思います。

そんな皆さんに追い討ちをかけるわけじゃないんですけど、Web サーバーていうのを今回ご紹介していこうかなと思います。笑

ざっくりと解説を加えて押さえておくポイントだけをちょっとまとめてみたので、今回見ていただければなと思います。

https://simablog.net/what-server-side-engineer/

今回のキーワード

今回のキーワードは「オートロック」です。

これどういう意味かな?っていうのは後々分かるかなと思います。

「Web サーバーってあるけど何なの?」

「種類とかってあるんですか?」

という意見あるかなと思います。

そこら辺も踏まえて解説していきます。

Web サーバーってなに?

最初に結論を言いたいと思います。

Web サーバーとは Web サイトを表示するための仕組みです。

・・・

これだけじゃ分かりにくいですよね。笑

もう少し詳しく話していきます。

ブラウザってなに?

皆さんはブラウザって分かりますか?

例えばパソコンとかでInternet ExplorerFirefox

iPhoneとかだったらSafari

Android だとChromeと言われるインターネットをつなげるためのサービスのことです。

なんとなくネットを見るときに使うというのは分かると思うんですけど、実は今回紹介している Web サーバーと結構関係が深いものなんですよ。

URLとネットの関係

どうやってWebサイトを見れるかって皆さん知ってますか?

ブラウザをIT用語で言うとクライアントって言われてるんですが、そのブラウザで URL を叩いてそこに置いてある情報を見るわけですよね。

地図みたいにここのフォルダにこういうデータがあるから、「こういうのを見せて」っていうのを URL っていうのができてる訳です。

URL を伝えた時に情報を送ってその情報を戻してくれる人が Web サーバーって役割なんです。

Yahooのページをみたいなら?

例えば、何か新しいニュースないかなと思ってYahoo のページに行ったとします。

あなたがGoogle Chrome で見ている時に情報をブラウザにまた送り返してくれるのがWeb サーバーなわけです。

つまり、 Web サーバーとブラウザというのはペアとして考えるのがいいんじゃないかなと思います。

もっとカンタンに言うと?

これだけだとちょっとまだ分かりにくいかなっていう部分があるので、もうちょっと具体的に例を出してお話しして行こうかなと思います。

よく Web の知識を教える時に

「サーバーとかって言われているものを土地だと考えましょう。

ドメインってありますよね。

URL とかで使われるドメインが住所、Webサイトが家だとしましょう。」

と言われます。

そんな感じで、ネット上にある家に住所とか家とか建物が建ってますよっていう例えをするんですね。

土地と Webサーバーの関係

じゃあこの中でWebサーバーってどういう役割なのか?と言うと、さっき言ったサーバーと言われるものとはちょっと違う働きをするんですね。

Web サーバーっていうのはオートロックみたいなものだと僕は思います。

例えば誰かが「あなたのサイトに入りたい、家に入りたい」って言われた時にインターホンを押して「開けてください」みたいな感じできます。

その時自分が許可しないとそのサイトには入れないわけじゃないですか。

逆に言うと、Web サーバーが設置されていなければ見ることができないわけです。

オートロックが設置されていてもそこに情報があるのは分かるんだけど、データを返してくれず、ただWebサイトがあるだけの公開されていない状況だと思うんですよ。

インターホンがないと人を呼び出せない

そのオートロックで「この情報出してください!」とか言っても、「いや知らんけど」みたいな感じでWeb サーバーがオートロックがないことによって情報が見れない、公開されてない状態っていうことになるわけなんですよね。

この説明でわかるかなと思うんですが、Web サーバーってそういった情報渡してくれる人だということがわかってくれればいいかなと思います。

覚えておくべき三つのサーバー

次に、覚えておくべき3つのサーバーについてお話ししていきます。

Web サーバーっていうのはいくつか種類がありまして、それらの中でも三つほど紹介しようと思います。

Apache
nginx
LiteSpeed

この三つの順でお話ししていきます。

・Apache

本当に有名で、羽のマークが書いてあるのが特徴で Web サーバーのシェアランキングがあるんですが、それで堂々の1位を取っています。

Web サーバーと言ったらこれっっていうくらいスタンダードなものです。

以前 LAMP 環境というものを解説した動画を出しまして、

LAMP 環境は何かと言うと4つの Web を支えるサービスの頭文字のことです。

ランプのL・A・M・PのAの部分がApacheになります。

大小を問わず Web サービスを使うんだったら、使うことになるのがApacheになるかなと思います。

https://simablog.net/what-lamp-mamp-xampp/

・nginx

次に紹介するのがnginxです。

こちらも有名です。

Apacheの後に出てきたんですけど、シェアは今すでに2位を取っているんですね。

すごいのが実は1位と2位の差がもうほぼほぼなくなってきているところです。

使用される理由として大規模な開発に向いているということがいわれています。

これはどういうことかと言うと同時接続っていうのがApacheより優れているという点でnginxを採用する企業が増えているんです。

個人開発だとあんまり気にしないところなので、Apacheを使おうが別にnginxを使おうがどっちでもいいかなと思います。

ちなみに僕はnginxをよく使います。

Apacheよりも使っています。

・LiteSpeed

LiteSpeedは密かに話題になっている Web サーバーなんですけど、シェアは大体5位とか6位ぐらいです。

これは何がすごいかと言うと、とにかく早いって言われてるんです。

このLiteSpeedっていう名前を知ったのがつい最近なんですが、レンタルサーバーmixhostっていうのがありましてそこが導入したっていうことで耳にする機会があったんですね。

このLiteSpeedはとにかく早いんですよってことを売り文句にしているんですけど、調べてみるとただ早いっていうよりも負荷に強いっていうところが言えるみたいです。

処理能力に対しても全然落ちないっていうところがあって、実質的に長い大きいデータの処理でもある一定のスピードで処理をしてくれるので、割と負荷に強いと言うサーバーになるかなと思います。

今後シェアを伸ばしていくのが楽しみなサーバーになるので是非覚えておいてください。

どうやって勉強すればいいか?

次にどうやって勉強すればいいか?について話していきます。

勉強の方法とかどういうところを抑えておけばいいのかっていうのを解説します。

既存のサイトなら既に絶対 Webサーバー っていうのがあるので、もしかしたらあんまり触る機会は最初はないかもしれません。

ただ、個人開発とかで触るぐらいかなと思ってまして、もし新規の案件に携わるとか Web サーバーの改修に携わるっていう時だったら三つぐらいポイントを押さえておけばいいかなと思います。

1.環境構築

2.https化(SSL認証)

3.ベーシック認証

この三つあたりを覚えておけばいいかなと思います。

https(SSL)は覚えておこう

その中でもやっぱり壁になりそうなのは2番目の https化、SSL認証とかって言うんですけどこれ僕よく失敗するのでここら辺でもしかしたらつまずく人も多いんじゃないかなと思います。

よく URL の中に http://みたいな感じでドメインが書いてあるじゃないですか。

http のところを https ってなってセキュリティがより強いものにするっていう作業をWeb サーバー上でやるんですけど、そういった認証の設定とか壁になってくると思います。

結構、Web サーバーの環境構築っていうところはなんとかなるはずだと思います。

普段は気にする部分ではない

ただ、やってみないとわかんないところもあると思います。

ルートがどこにあるかとか、どこで接続をしていいのかどうかっていうのをドキュメントに書いていくわけなんですけど、そこら辺をネット上に「こういったふうにやれば大丈夫ですよ」とデータが載っていたり、あるいはすでにレンタルサーバーとか借りる状態だったら既に設定されてたりするのでそこまで気にしなくていいかなと思います。

Basic(ベーシック)認証とは?

ベーシック認証のところもちょっと解説すると、会員しか見れないページとかアクセスが制限されているページに行くとたまにポップアップみたいなものが出てきて、ユーザー名とかパスワード入れてくださいというのを見たことないですか?

SNS とかネットバンキングとかに出るログインの画面とかじゃなくてポップアップに出る感じのタイプなんですけど、それがベーシック認証です。

もしかしたら作業する可能性もあると思うので、覚えておきましょう。

まとめ

まとめ① Web サーバーとブラウザはペアになっている。

まずブラウザからこういう情報が欲しいですっていうのをサーバーに問い合わせて、このサーバーから情報を戻してくれる。

このラリーがあっての Web サーバーとブラウザっていう関係性があります。

まとめ② Web サーバーの役割はデータの返信。

先ほども言った通り、情報が欲しいっていうのを問い合わせてデータがあれば戻してくれる、表示してくれる仕組みっていうのがあります。

具体例で家を挙げて説明したんですけど、家に入った時にオートロックがありますと。

住所の番号とか打つわけじゃないですか。

これを URL だとしましょう。

301号室の情報くださいみたいな感じで入れてくださいっていう感じで行くわけなんですけども、オートロックがなければそもそも部屋に入れないわけじゃないですか。

そんな感じで Web サーバーっていうのはそういった通貨の仕組みだったり情報を与えてくれる仕組みの一つ。

通過の仲介役になっているところがあります。

まとめ③ Apacheとnginx覚えておけばとりあえず OK。

Web サーバーっていうのはだいたいその二つがシェアをがっつりとっている所があるので、そこら辺覚えておけば大丈夫でしょう。

今回のまとめです。

・Web サーバーとブラウザはペアになっている
・Web サーバーの役割はデータの返信
・Apacheとnginx覚えておけばとりあえず OK

https://simablog.net/what-infrastructure-engineer/

-ENGINNER
-