第1回 インターネットの仕組み【社内講座 再掲】

第1回 インターネットの仕組み【社内講座 再掲】

私たちのパーソナルコンピューター(以下PC)同士はどうやって通信しているのでしょうか。ここでは身近なウェブサイトの表示を例に、その仕組みを「物凄くザックリと」大雑把に解説していきます。読みながら「厳密には○○ではないか?」などと提言できる方、おそらくこのページは必要ありません。次の回に進みましょう!

IPアドレスとは

まず、PCとPCが通信するためにはインターネットへの接続はもちろんですが、更にお互いの住所や電話番号のようなモノを知らなければ相互に連絡する手段がありません。これは現実世界でも同じですね。

その現実世界での住所や電話番号に代わるものが、インターネットではIPアドレス(グローバルIPアドレス)になります。

このように3桁の数字を4つ組み合わせた文字列で、お互いの端末を確認しています。世の中でインターネットに接続する端末はこのIPアドレスという番号が割り振られ、殆どの人は無意識のうちにこのIPアドレスをやり取りして相互に通信しています。(厳密にはこのIPV4と言われている仕組み以外も存在しますが割愛します)

また、IPアドレスは基本的には時間制限や接続しなおし等、様々理由で更新されますが、インターネットの回線事業者ごとにある程度決まった範囲の数字が割り当てられていたり、望めば(多くの場合は追加費用を支払うと共に)その番号を固定することができます。

IPアドレスは更新されると説明しましたが、IPアドレスが一致していれば確定ではありませんが限りなく同一端末である可能性が高いという情報にもなっています。しかしながら基本的には常に変動する番号のため

「XXX.XXX.XXX.XXXからの接続だから○○さんだね!」

のような使い方は大変危険です。引き換えに先ほど出てきた固定IPアドレスというもので、その番号を恒常的な番号にすることが可能です。番号が変わらなくなるので、先ほどのような身元の証明として使えるようになります。

引き換えに、本来であれば更新される番号が変わらなくなりIPアドレスだけで個人を特定することも可能になっている点に注意しましょう。

またIPアドレス(グローバルIPアドレス)には、後述するローカルIPアドレスもあります。

ドメイン

このIPアドレスですが、見ての通り12桁の数字をパッと覚えるのは難しいですね。そこでそれを解決するのがドメインです。

「http://cayenne.co.jp/というドメインにアクセスすると、自動的に123.456.789.012のIPアドレスの番号につながる」

といった様な仕組みです。意味のない数字の羅列よりも格段に覚えやすくなりましたね。このドメインの一覧とIPアドレスの紐づけ(解決)をしてくれるDNSという仕組みがあり、そこでIPアドレスとドメインを相互に変換して通信しています。

ローカルIP

インターネットでの大まかな通信の仕組みは説明しましたが、それではローカルネットワークと言われる家庭内や社内などの通信はどうなっているのでしょうか。

一つの回線を複数のPCで使用する場合は、通常ルーターという端末を経由してインターネットに接続しています。

図のようにルーターから先の仕組みは先ほどのドメインの図版と同じです。違うのはルーターと言われる装置の先に複数の端末があり、先ほどまで登場していたIPアドレス(グローバルIPアドレスと区別して呼びます)とは別に、ローカルIPアドレスという同じネットワーク内でのみ利用できるIPアドレスを発行して仕様しています。

この番号にはある程度規則性があり、192.168~や10.0~などの番号で始まることが多く、グローバルIPと見分けることができます。

このローカルIPアドレスを同一ルータにつないでいない友人に送っても、自分のPCと友人のPCは通信できません。逆に同じネットワークに接続していれば、このIPアドレスを共有することで、自分のPC上に建てた開発用のサーバーに、同じネットワーク内の別のPCからブラウザで「http://192.168.0.10:XXXX」とURLを記入してアクセスして確認することも可能になります。

ローカルIPは、スマートフォンから自分のPC上のサーバーにローカルIPを利用して接続して動作を確認する時に利用することになるので覚えておきましょう。(この時スマートフォンとPCは同じネットワークに接続している必要があります)

たどり着く先の「ウェブサーバー」

色々省略していますが、ここまでのプロセスを経てようやく到着する通信相手がウェブサーバーです。

サーバーと言われると、何か得体のしれないものに感じるかもしれませんが、その正体は私たちのPCと同じ仕組みの物です。

そのサーバーと呼ばれるPCは、外部からの通信を受けると、サーバー上の特定のファイルを私たちのPC送り返したり、サーバー上で特定のアプリケーションを走らせて処理をしたりと、様々な動作をします。

そのウェブサーバーの中で、私たちが契約しているサーバーの管理画面などでお目にかかる大きわけて二つの仕組みがあります。FTPと呼ばれるものと、データベースと呼ばれるものです。その他にサーバにインストールされたアプリケーションなどを使った機能も色々あります。

FTP(File Transfer Protcol)

FTP(File Transfer Protcol)と呼ばれるものは主にサーバと私たちのPCで通信をして、ファイルをアップロードしたりダウンロードしたりすることができます。フロントエンド、バックエンドにかかわらず、この仕組み(またそれに類するもの)で制作したHTML(Hyper Text Markup Language)や画像データをサーバにアップロードします。

余談ですがhttp(Hyper Text Transfer Protocol)は非常に乱暴な言い方をすれば、FTPのダウンロード部分だけを取り出した仕組みとでも言いましょうか。読んで字のごとく、HTMLとそれに付随するメディアを転送する仕組みです。(ダウンロード部分だけといいましたが厳密には双方向で通信しています)

DB(Database)

そのファイルそのものを扱うFTPと対称的に、データベースというモノがあります。ここは読んで字のごとく、データを蓄積する場所になります。

想像しやすい様にいうと、一番身近なデータベースに似たような中身の仕組みはExcelやCSVと言われるようなデータファイルです。(厳密には怒られるくらい全く別物です、あくまでも想像しやすい例として出しました)

ブログなどはFTPに置いたプログラムファイルが、このデータベースと連携して記事の本文やタイトルや日付などの情報を取得し、その取得した情報を埋め込んだHTMLファイルとしてあらかじめ生成しておいたり、リアルタイムで生成したりして、ユーザーにそのHTMLデータをダウンロードさせて表示しています。

カイエンで主に制作している部分

弊社で制作しているのは、上記のFTPの図版でいうフロントエンドのファイルに当たる部分をメインに制作しています。フロントエンドは実際にUIとして目にするデザインを起こし、それをHTML/CSS/JSファイルとしてサーバーにアップロードしてhttpを通して送受信できる形に構築する作業を主としています。

またカイエンでバックエンドの開発も必要な場合は、バックエンドの会社とタッグを組んで開発していくこともあります。

次回は、そのフロントエンドとバックエンド、と言われている部分の区別について説明していきます。

開発カテゴリの最新記事