システム開発をする上で、Webサーバの仕組みは必ずと言っていいほど知らなければいけません。
本記事では、Webサーバについて図を交えながら分かりやすく解説していきます。難しいものではないので、エンジニア初心者の方やWebサーバについてよく知らない方はこの機会に理解していきましょう!
Webサーバとは
Webサーバについて、Wikipediaにはこのように記されています。
Webサーバ(ウェブサーバ、英:Web server)は、HTTPに則り、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクト(画像など)の表示を提供するサービスプログラム及び、そのサービスが動作するサーバコンピュータを指す
引用元:Wikipedia
つまり、HTMLファイルや画像などのコンテンツを提供するサーバということです。
もっと言うと、Webサイトを公開させる機能を持つミドルウェアがインストールされているサーバが“Webサーバ”です。
Webサーバが公開するコンテンツには、HTMLファイルや画像などの静的コンテンツと呼ばれるものと、アプリケーションなどの動的コンテンツと呼ばれるものがあります。
公開するコンテンツによってシステムの構成は変わってきますが、どちらにせよコンテンツを公開しているはWebサーバのなので、システム開発をする上でWebサーバの理解は重要なのです。
そもそも「サーバってなんだっけ?」ていう方は、こちらの記事をどうぞ。
Webサーバの仕組み
Webサーバの仕組を理解する上で、出てくる登場人物は以下の2つです。
Webサーバ…Webサイトを公開させる役割
Webクライアント…Webサイトを閲覧する役割
Webクライアントとは、Webサーバにアクセスするためのソフトウェアです。
気づいたと思いますが、このソフトウェアは皆さんが良く使っているWebブラウザです。
- Internet Explore
- Chrome
- Firefox
- Safari
などはWebクライアント(Webサイトを閲覧する役割)に当たります。
それぞれの役割とし仕組みについてみていきましょう。
- ブラウザ(Webクライアント)からWebサイトにアクセスする
- ブラウザ(Webクライアント)からの要求(リクエスト)をWebサーバが受け取る
- Webサーバは、要求(リクエスト)に応じたコンテンツ(HTMLファイルや画像)のデータを探す
- Webサーバは、ブラウザ(Webクライアント)にデータを渡す(レスポンス)
要は、ブラウザからの要求をWebサーバが返すというだけです。
Webサーバの種類
Webサーバにも様々な種類がありますが、まずは以下の代表的は2つを覚えておけばOKです。
Apache(アパッチ)
Nginx(エンジンエックス)
この2つはWebサーバを構築する上で、必ずと言っていいほど名前が上がるミドルウェアです。
構築するシステムによってどちらを使うかは変わってきますが、仕組みは同じです。
ApacheとNginxの違いについて知りたい方はこちらの記事か参考になります。
Webサーバの構築環境
先ほど紹介したApacheやNginxはOSSというもので、無料で使用することができます。
勉強用にWebサーバを構築しようとしている方は、Linuxで環境を構築することをおおすすめします。
WindowsやMacでも構築できますが、基本的にWebサーバはLinuxで構築することが多いので、より実践的な知識を身につけたければLinuxで構築するのが良いでしょう。
VirtualBoxというツールを使えば、Linux環境でWebサーバを簡単に作ることができます。
VirtualBoxでLinux環境を構築する方法はこちら。
ApacheでWebサーバを構築する手順はこちら。
Webサーバとは:まとめ
- Webサーバとは、Webクライアントからの要求(リクエスト)を受けって、その結果を返すサーバのことである
- 日常的に使用しているブラウザは、Webクライアントである
- Webサーバの種類は、とりあえずApacheとNginxを覚えておけばOK
- WebサーバはLinuxで構築する方が実用的である
いかかでしたでしょうか。
ここまで読めば、Webサーバについて理解できたのではないかと思います。
基本的な部分は知ることができたので、細かい部分は実際に使いながら調べていくのがいいでしょう。
最後まで読んでいただきありがとうございました。