コンピュータ同士が通信する際には、“プロトコル”と呼ばれる通信手段を決定し、お互いに同じプロトコルを使わなくてはならない。これは、人間同士が会話するときに、同じ言語(日本語や英語など)を使うのと類似している。プロトコルには、さまざまな種類が存在するのだが、インターネット上では“TCP/IP”というプロトコルを利用する。 TCP/IPでは、ネットワーク上の各コンピュータに固有のIPアドレスと呼ばれる32bits(4bytes)の識別子を割り当てる。TCP/IPを使った通信は、相手のIPアドレス … ソシャゲの鯖落ちはなぜ起きる? 運営側のサーバー能力に関係が!, またMMORPG形式のソシャゲではサーバーをクライアント側で選べますが、混雑するサーバーがあるとそれだけで通信が遅く感じるので注意が必要です。, 今回はサーバーの意味と仕組みについての解説でした、改めて最後にまとめをさせていただきます。, 本当はもっと難しい専門用語なども混ぜながら解説しようと考えたのですが、ややこしくなりますので今回は簡単な解説にとどめました。, 今後はスマホやタブレットなどが普及すると、Webサーバーを構築したり整備できるようなシステムエンジニアがますます必要とされます。, 今からでも遅くないので、ネットワーク関係の知識を勉強しておくことに越したことはないですよ!, コメントありがとうございます。 © Copyright 2020 エンジニアの入り口. Webサーバーの仕組みとは? Linuxでは、Webサーバーとして各種ソフトウェアが用意されているが、そもそもWebサーバーとはどういう仕組みでできているのか? クライアントとサーバー.

サーバーに含まれる主な部品(パーツ)としては、マザーボードや電源、CPUなど様々なものがあります。 ここでは主にサーバーに入っている部品を簡単にご紹介します。 こちらもそれぞれについて、不足している点をご紹介しますね。 このブログでは多くの人が知ってそうで知らないニッチな雑学ネタ、学生が気になる情報、その他筆者の趣味としている生活関連のネタを中心に記事をまとめています。

インターネットの仕組みを理解するためには、ipアドレスやルーティングの仕組みを理解する必要があります。この記事では通信インフラの仕組みを図解しています。 スマホやパソコンの普及と同時にインターネットを利用する人も当たり前のように増えました。, インターネットでいろいろ情報を検索できるようになったのは確かに便利ですが、いろいろ難しい専門用語が多くて仕組みについては詳しく把握しづらい面があります。, 中でも今回ご紹介するサーバーというのはインターネットにおいて重要な仕組みの一つです。, 僕自身も大学でインターネットの仕組みについて詳しく学習するまでサーバーがどうのこうのとか、詳しい意味や仕組みをよく理解していませんでした。, しかしインターネットを利用する上で、サーバーについての知識はあるに越したことはないです。, ソシャゲでもサーバーが落ちたとか重くなった、などと使われるようですが何となくという意味で理解していると自分がどう対処すればいいかがわからなくなり、ちょっと不便になります。, 今回は改めてサーバーの意味や仕組みについてわかりやすく簡潔に解説していきます。ぜひご覧ください!, サーバーの正式な意味を解説しますと、サービスを受けるコンピュータ側から提供された要求に対して情報や処理結果を提供するコンピュータのこととなります。, 今でこそインターネット関連の用語として定着していますが、元を辿れば英語でserverと書き「サービスを提供する物(人)」という意味です。, 例えばビアホールに置いてあるビールを汲みだす機械なんかも「ビールを提供する物」になるので、ビールサーバーという呼び方をしますね。 そもそもレンタルサーバーとプロバイダーの違いが分からない方もいると思いますので、 基本的なインターネットの仕組みも含め、 「レンタルサーバー」と「プロバイダー」について説明していきます。 プロバイダーは、簡単に言うと、接続業者です。 ソーシャルゲームのサーバーはそのゲームを運営する会社のサーバー上でデータが保管されていますが、やはり一度に大量のアクセスがあるとゲームのプレイが出来なくなったりします。, 特にサービス開始初期のゲームには多いですね。 こちらこそお役に立てれて何よりです、今後とも当ブログをよろしくお願いします!, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 九州出身の雑学&ゲーム好きのアカギです。 これがファミレスでの一般的な流れですね。, もうお気づきかもしれませんが、この流れはWebブラウザで情報を検索する流れに似ています。, まずWebブラウザを開こうとする動作が、ファミレスに入って席に座る所に該当します。, そしてWebブラウザの検索窓にURLやキーワードを入力するのが、ウェイターに対して注文をする行為に該当します。ウェイターはこの場合Webブラウザですね。, Webブラウザがサーバーに対して検索されたキーワードの情報を伝える動作は我々の目には見えませんが、ウェイターが厨房に対して注文を伝える行為に該当します。, 最後に我々が使うWebブラウザ、画面上に検索結果がずらずらと表示されますが、これはウェイターが頼まれた料理を我々のテーブルまで運んでくれる行為に該当します。

目指すは500記事です!, Webブラウザとはインターネット閲覧用のソフトのことで、Google Chrome、Microsoft Edge、Internet Explorer、Firefox、Safariなどがあります。, サーバーとはサービスを提供するコンピュータのことで、一般的にクライアントサーバモデルとのこと, WebサーバーはWebブラウザと呼ばれるクライアントとの間でデータのやり取りをしている, 短時間で想定以上の負荷がかかると、一部機能が停止したり機能がうまく働かなくなってサーバーがダウンすることもある. ファミレスで例えるとこんな感じです、一連の動作はまさにクライアントサーバシステムで、クライアントというのがWebブラウザ、すなわちウェイターで、サーバーというのが厨房で働く料理人になります。, 料理を注文して作って運ぶ、これら一連の動作がクライアントとサーバーに分散されているのでクライアントサーバシステムは分散型システムの一種だとされています。, これなら1台のコンピューターが故障しても、他のコンピューターが代わりに処理してくれるので、システム全体に悪影響が及ばないようになっています。, インターネットやソシャゲをプレイしていると、閲覧するページの読み込みが極端に遅いと感じたり、最悪全く通信ができないといった状態になることがあります。, お客の数が増えると作る料理の量がとんでもなく増えます。すると単純に待ち時間が増えるのと同じことです、料理人の数にも限りがありますからね。, またファミリーレストランには席の数も限りがあるので、一定数以上の人数は受け入れられません。, これと同じことがWebシステムでも起きているのです。要は一度に多くの人がクライアントを介してデータを送信すると、単純にサーバ側で処理しきれなくなるので時間がかかってしまうということになります。, 現在のWebサーバは負荷分散を行っているのが普通ですが、それでもリアルタイムで一度に百万以上のアクセスが来たりすると処理しきれません。, 標的のコンピュータに対して複数のマシンから大量の処理を与えてサービスを機能停止にする攻撃のことで、過去には2チャンネルやニコニコ動画、米国 Yahoo!も被害を受けたことがあります。 しかし、実際Webサーバーがどのような仕組みで動いているかは、構築をしてみない限りなかなかわからないのではないだろうか?, このページではWebサーバーがどのような仕組みで動いているかを初心者向けに解説した。前半だけでも読んでいただければ、基本的な知識は身につくはずだ。, Linuxでは、Webサーバーとして各種ソフトウェアが用意されているが、そもそもWebサーバーとはどういう仕組みでできているのか?, Webブラウザーはご存知かと思う。今、このページを見るために使っているツールのことだ。, Google ChromeやMozilla Firefox、Safari、Internet ExplorerやMicrosoft Edgeなど、種類はたくさんあるがまとめてブラウザという。, それ以外にもスマートフォン上のブラウザもあるし、いわゆるスマホアプリの中に埋め込まれて、気付かずに動いていてものもある。, これらはユーザーの手元で動くもので、どこかから情報を取り出すツールだ。これらクライアントと呼ぶ。, 反対に、クライアントが情報を取り出す先はサーバーと呼ばれる。サーバーはクライアントからの指示を受け取り、その内容に応じた情報を送り返すようになっている。, クライアントがサーバーに送る情報を「リクエスト」 、サーバーがクライアントに送り返す情報を「レスポンス」と呼ぶ。これもそこら中で聞くことになるので、覚えて置きたい言葉だ。, クライアントとサーバーの間では「リクエスト」と「レスポンス」がいったりきたりすることになる。 ブラウザーが見に行っているサーバーが「Webサーバー」だ。Webに関するサービスを提供しているから、Webサーバーとなる。, ここまでの内容でもWebサーバーの大まかな理解はOKだ。簡単だが、難しく考える必要もない。, このアドレスは、URL(Uniform Resource Locator)と呼ばれる。ブラウザーでは、URLを受け取ると、その内容を確認し、3つの要素に分けて考えている。, 仮に "http://example.com/sample.txt" を入力した場合は以下のようになる。, ブラウザーはこの情報を元に、サーバーへ接続し、サーバーから情報を取得できるように要求を送り、結果を受け取って画面に表示するようになっている。, URLとして接続先ホスト名の後に何も書いていない場合は自動的に末尾に "/" が補われて "http://example.com/" として扱われるようになっている。 例えば、今回のケースであれば、 "http://example.com" が該当することになる。, 上記のように、サーバーは基本的な動きとして、要求に合わせたファイルを準備しておき、リクエストに応じたファイルを読み込んで内容を返せばよいということになる。, Webサーバーは上のとおり、クライアントからのリクエストを解釈し、サーバー上に用意された該当ファイルを返すことが基本となっている。, このやり取りの流れは、 HTTPという決まりごとの上で動いているため、この決まりを処理できるプログラムがWebサーバーと言われる。, Webサーバーとしての機能を持つプログラムは多数存在するが、以下のものが有名なものである。, Webサーバーとして非常に有名なものだ。デファクトスタンダードと言われるWebサーバーである。何も注意なく、Webサーバーと言われたら大体Apacheだ。, Apacheはオープンソースなものであり、利用の際の制限がほぼ無いため、一般的なLinuxディストリビューションの標準Webサーバーとして配布されている, Apache同様オープンソースなWebサーバーのひとつで、並行処理性能の高さ、比較的メモリ消費が少ないなどの特徴を持っている。, オープンソースの開発形態ではあるが、強化された商用版も別途存在している。 現状では、処理性能のためにプログラム構築時に必要な機能を組み込む機構になっている。 このため、配布されているパッケージ版では不要な機能が組み込まれていることもある。 性能を調整したい時などはソースコードを入手して調整する必要もある。, では、ここではApache http Serverをインストールし、サンプルページを作成・ブラウザーで表示してみよう。, 以下、動作環境については、以下のものとしている。が、環境が用意できない方はさらっと読み飛ばして貰えばよい。, Apache http serverは、以下の操作でインストールできる。 ネットワークに接続していることが前提だ。, ファイル名はsample.htmlとしておく。 エディタを用いて作成しよう。 ここでは viエディタを使うが、何を使ってもいい。, 作成したファイルは、Webサーバーの公開ディレクトリに配置する必要がある。 一般にディレクトリ /var/www/html が用いられるので、ここにコピーしてみよう。 無事にコピーされているかも確認しておくこと。, 確認できたら、まずは普通にアクセスしてみよう。 今回は "http://localhost:8080/" へアクセスしている、利用環境に合わせて適宜読み替えてほしい。, 理由はファイル名だ。今回は、sample.htmlとしていた。そのため、ファイル名をきちんとつけてアクセスしなおしてみる。, "http://localhost:8080/sample.html" と書き換えて接続してみると…, 設定は変更可能だが、標準設定では、ディレクトリ /var/www/html が基点として扱わせるように設定されている。つまり先程行った操作、, でコピーした時のsample.htmlの完全な表記(/var/www/html/sample.html)から、基点となるパス "/var/www/html" を差し引いた "/sample.html" が要求された時に返すデータという認識になっている。, その一方で "http://localhost:8080/" にアクセスした時は、ブラウザーがサーバー側に要求したコンテンツは "/" となる。 その時は、そのディレクトリにおけるインデックスページを出すようにプログラムされている。, インデックスページとは、サイトの入り口となるページのことだ。一般にこのファイルは "index.html" という名前がつけられることが多い。, "http://localhost:8080/"と"http://localhost:8080/index.html"は同じファイルを開くことになる。, 一般的には index.html が使われるものの、固定されているわけではなく、変更も可能だ。また、複数のインデックス候補を用意することもできる。, といった形で処理することもある。このしくみは、PHP等のプログラム実行環境では重要になるので、覚えておくといいだろう。, 以上のように、Webサーバーは、設定に従い、コンテンツを返せるシステムであるということがなんとなく感じられたと思う。, これらは、Apacheサーバーの設定として、CentOS7ではディレクトリ /etc/httpd 以下に用意されている。, このうち、conf ディレクトリにある httpd.conf が設定の基礎にあたるもので、必要な設定はこの中から呼びだされて組み込まれるようになっている。, 実際にhttpd.confを読んでみよう。少し大きいファイルのため、 less でゆっくり読むことにする。, 上のように冒頭に説明文が#のコメント付きで入っているため、流し読みしながら下(カーソルキー↓かjで移動)へ進めると、以下の内容を確認できる。, これは、設定のベースとなるディレクトリが /etc/httpd であり、 Include の指示で、conf.modules.dディレクトリ以下の拡張子がconfのファイルたちを読み込むという意味だ。, Optionalはいわゆる「オプション」のこと、「もし該当するファイルがあれば読み込んで」という意味だ。, index.htmlファイルの有無やルートディレクトリの変更などは後者のconf.d側で設定することになる。, 設定の詳細に関してはまた別のページでご紹介するが、ここら辺に設定ファイルが入っているのだな、というのだけ知っておくと便利だ。細かいところはともかく、一度ファイルを覗いてみておこう。, このページではWebサーバーの仕組みと構築方法についてご紹介した。後半こまかい部分も説明してしまったが、まずは全体像をつかむのが大切だ。, Apacheはインストールするのも、実際に動かしてみるのもそれほど難しくはない。ぜひ一度チャレンジをしてみてほしい。, という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。, エンジニアの入り口に立つために必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報が詰まっています。, 【ITエンジニア養成スクール & IT研修専門企業のリナックスアカデミーです。】エンジニアの入り口に立つために役立つようなコンテンツを日々ご提供していきます。講師や代表やスタッフ陣が毎日楽しく書いています。ご質問・ご指摘等はぜひコメントください。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。. インターネットやパソコン関連でよく耳にするサーバーとはどういった仕組みなのか?インターネットを利用するにおいて知っておくに越したことはないので、今回はファミレスを例にわかりやすく解説します、またサーバーシャットダウンが起きる理由も軽く紹介します。 もともとは、冷戦時代の 1969 年に作られたアメリカ国防総省の軍事研究用ネットワークである ARPAnet (アーパネット) が起源であると言われています。 インターネットの仕組み. ざっくり言うとこんな感じですが、この場合のサービスを受けるコンピュータ側というのは一般ユーザのこと、即ち普段パソコンでネット閲覧やゲームをプレイする我々だということになります。, ただし厳密に言うとここにWebブラウザというクライアントがあって、この両者がネットワークで繋がっているクライアントサーバシステムというのが一般的にはサーバーの意味として認識されています。, クライアントサーバモデルというまたも難しい用語が出てきましたね、一体どういうことなのか?, ただこの説明でもよくわかり辛いですね、次からはもっと具体的に砕けた感じで解説していきます。, お店に入るとウェイターが席まで案内して、「ご注文が決まりましたらお呼び下さい。」と言って、メニューを見た後でお目当ての料理をウェイターに頼みます。, しばらくすると、ウェイターが頼まれた料理を自分の席まで運んでくれます。 CentOS7内ではApache(httpdパッケージ)を無修正でインストールしている, VirtualBox内CentOSとのネットワーク接続は標準設定(NAT)であり、 ポートフォワーディングを設定して8080番ポートと80番のマッピングを行っている, このため、CentOS側のページ参照は http://localhost:8080/ 以下となっている、 利用環境が異なる場合は適宜読み替えてもらいたい, 一般にこのファイルは "index.html" という名前がつけられることが多い。, 【Java & Tomcat】HttpServletResponseインターフェイスについて知ろう, 【Java & Tomcat】Webアプリケーションの設定(web.xmlの設定)※サンプルプログラム付き, 【Java & Tomcat】Webアプリケーションの設定(マッピング)※サンプルプログラム付き, 【Java & Tomcat】コンテンツタイプの設定(setContentType)※サンプルプログラム付き, 【Java & Tomcat】サーブレットのライフサイクル ※サンプルプログラム付き, 【Java & Tomcat】文字出力用のストリームの取得(getWriter)※サンプルプログラム付き, 【Java & Tomcat】リダイレクトの設定(sendRedirect)※サンプルプログラム付き, 【Java & Tomcat】サーブレットからフォームデータを取得する(サンプルコード付き), 【Java & Tomcat】サーブレット開発をEclipseでするための初期設定を画像付きで分かりやすく解説, サービスを提供する側 = サーバー(service + 人のer = server), http → 相手との接続方式として "http" を使うものとする ※ :// の部分は区切り文字. インターネット とは、世界中のコンピュータと情報をやり取りする、 巨大なネットワーク網 のことです。. 複数のコンピュータを、ケーブルや無線などを使ってつなぎ、お互いに情報をやりとりできるようにした仕組みをネットワークと呼びます。. All rights reserved.

B, ƒƒfƒBƒAˆê—— | ŒöŽ®SNS | LˆÄ“à | ‚¨–â‚¢‡‚킹 | ƒvƒ‰ƒCƒoƒV[ƒ|ƒŠƒV[ | RSS | ‰^‰c‰ïŽÐ | Ì—pî•ñ, uƒeƒŒƒ[ƒN‚ªƒRƒƒiŒã‚̃jƒ…[ƒm[ƒ}ƒ‹‚É‚È‚év‚Í–{“–‚©\\uƒŠƒ‚[ƒgƒ[ƒNvuÝ‘î‹Î–±vŠÖ˜Aƒjƒ…[ƒX‚Ü‚Æ‚ß, uƒRƒƒi‰Ðv‚ÅŒƒ•Ï‚µ‚½Šé‹Æ‚ÆITƒGƒ“ƒWƒjƒA‚́u¶‚«Žc‚èí—ªv\\“ÇŽÒ’²¸‚ƃjƒ…[ƒX‹LŽ–‚©‚çl‚¦‚é. インターネットとは.