プログラミング初心者向け。サーバーって何?。初心者がつまずく用語解説
プログラミングを始めたばかりの時って知らない単語ばかりですよね。
「それ。。ちょっとどういうこと????」みたいな概念で溢れていますよね。今回はそんな中でも頻出度が高く、理解しづらい単語の一つサーバーについて解説します。
サーバーは役割の名前
サーバーと聞くとサーバーセンターという地方にあるでかいコンピュータがたくさん置かれている部屋をイメージされる方もいると思います。
サーバーのイメージとして間違いではないのですが、普段業務で使われるサーバーというのはもう少し身近なものだと思って頂いた方が良いと思います。
サーバーという言葉は慣れないうちはそういうサーバーという名の機械を指していると勘違いされがちですが、サーバーはそのシステム内での役割を示しています。
サッカーでも「審判」という名前の人が存在するのではなく「審判」という役割が存在して、その役割が実際に審判をする人につけられます。
これと同じでサーバーの実態はみなさんが使っているPCとほとんど変わりはありません。
※細く見るとサーバーはアクセスしてくるユーザーのリクエストを捌かないといけなかったり、停電に対応していないといけなかったりするので個人向けのコンピュータより拡張されるものではありますが、大まかに見るとほぼ同じものになります。
リクエストにし対してレスポンスを返すもの
上でサーバーとは、役割の名前ということを説明しましたが、実際的にサーバーが果たす役割というのは、なんらかのユーザー(クライアント)からのリクエストに対してサービスを提供するというものです。
サービスを提供するというと少し、大きい単位で捉えられがちですが、その一例をあげると、ユーザーがGoogle ChromeなどのブラウザであるURLにアクセスするとそのURLに紐づけられたサーバーにリクエストが飛びます。これをサーバーは処理してユーザに対してWebページを返却します。
このWebページを返却というのがサービスを提供するということです。 ( サービスとかいうとFacebookとかTwitterとかを思い浮かべますがそういうことではありません。)
WebシステムにおいてはHTMLを返却してくれる
先にも説明しましたが、Webシステム(Webアプリケーション)におけるサーバーの役割はリクエストに対して、HTMLページを返却することが基本的な役割になります。
さらにいうとサーバーにはプログラムが置かれているのでそのプログラムがリクエストを処理して、要求に応じたHTMLを返却してくれます。サイトのトップページへのリクエストがきたらトップページを返却。ログインページへのリクエストがきたらログインページを返却といった具合です。
自分のPCもサーバーになる
ここまででサーバーの役割を理解できると、自分のPCもサーバーになることがわかります。
一番ストレートでわかりやすいのが、自分のPCをサーバーとして外部に公開するという方法ですが、それはそれで骨が折れるので一般的な開発者は自身のPC内で完結するようなサーバーを自身のPC内に構築します。
ドットインストールやプログラミング学習サイトでローカル開発環境を構築するというステップがありますが、このローカル開発環境というのが自身のPCにサーバーを立てることを指します。
ほとんどの開発者はチームで開発しているWebアプリケーションを自分のサイトで動かしながら開発をしています。
まとめ
ここまでで、少しばかり理解しづらい、意味を掴みづらいサーバーという単語の意味はおわかりいただけましたでしょうか?
IT業界ではこういった一見何をいっているかわからない単語が頻出するので大変な部分もありますが、こればかりは慣れです。わからない単語も最初聞いて調べてみてそれでもわからなくても、同じ単語を何回か聞いたり、現場でのその言葉の使われ方を観察してみていたりすると意外と
「なんだそういうか」
という感じでハラオチできます。
プログラミング学習は一回で理解できないことも多々あるので、そこで挫折せずに何回もチャレンジすることが大切です。「今日たくさんの量をこなすより、また明日トライできる」ことなんかが大事ではないでしょうか。
機会あればこんな感じで用語説明もやっていきます。