Webの仕組み

2023年04月13日

このページではWebページやコンテンツにアクセスしてデータを取得する仕組みであるWebに関して、なるべくわかりやすく解説します。
専門用語の解説も大まかに行います。

Webとは

Webとは「World Wide Web」の略称であり、文章や画像・動画などのメディアコンテンツを公開したり閲覧したりできる仕組みです。

スマホやPCでWebサイトを見たり、アプリなどで動画や画像を見たり、音楽をダウンロードしたりできるのは、このWebの仕組みのおかげというわけです。

Webの歴史

Webの仕組みは Tim Berners-Leeらによって提唱されCERN(欧州原子核研究機構)で開発されました。
1991年8月6日、Tim Berners-Leeは、最初のWebサイトを公開しました。

このサイトは、テキストのみの非常に単純なものでしたが、Webの基盤となる技術であるHTML、HTTP、URLの初期の形式が使われていました。
当初はCERN内部での情報共有のために使われることを意図して作られましたが、やがて世界中の人々がWebを利用するようになりました。

Tim

Tim博士

イギリス出身の計算機科学者でWebの父と呼ばれています。
WWWとその仕組みの基礎設計を行いました。

Webは平成から始まったと言っても過言ではないですね~

プロフィール画像

ぺんろん

Webページが表示されるまで

ブラウザ(Webサイトを見るためのアプリケーション)を使ってWebサイトが表示されるまでには具体的には以下のような仕組みが関わっています。

  1. 最初にブラウザにWebサイトのURLを入力すると、URLの情報はDNSサーバ(URLをIPアドレスに変換する場所)に送られIPアドレスのデータを取得
  2. DNSサーバから受け取ったIPアドレス(サーバの場所を表すアドレス)を使用して、Webサイトのサーバ(サイトのデータが置いてある場所)に接続
  3. ブラウザはWebサイトのサーバにリクエスト(サイトのデータが欲しいという要求)を送信
  4. Webサイトのサーバはブラウザから送信されたリクエストを受信しWebサイトのサーバはブラウザに対してレスポンス(サイトのデータ)を送信
  5. ブラウザはWebサイトから受信したコンテンツを解釈しユーザが見える形で表示

Webの構成技術

Webを構成する代表的な技術・仕組みに関して簡単に解説します。

クライアントサーバシステム

Webに接続されたコンピュータはクライアントとサーバと呼ばれます。

クライアントはデータを要求するユーザの使用端末でサーバは基本的にはデータを返送するサーバになります。

またクライアントはデータの要求(Request)をサーバに送ります。サーバはその要求を受け取るとクライアントにデータの返送(Response)を行います。これによりクライアント・サーバ間での通信であるためクライアントサーバシステムと呼ばれます。

IP通信

TCP/IPにおけるIPはOSI参照モデル(コンピュータの通信機能を7階層の構造に分割し定義したもの)においてL3(第3層)のプロトコル(データをやり取りするための決まり事)であり、現在のインターネットの通信の仕組みの根幹にかかわるものとなっています。

IPはIPアドレス(コンピュータなどの機器の場所を表す一意な番号)を用いて通信を行います。
重複できない番号であるためICANNという国際組織が管理し、各国へ割り当てを行っており、実際には各家庭や企業にはインターネットプロバイダ等が割り当てを行っています。

IPアドレスの構造

IPアドレス(IPv4)は32bitの長さで表現され、ネットワーク部とホスト部で構成されます。
このネットワーク部とホスト部の割り当てはサブネットマスクというもの割り当て方次第で自由に変更することができます。主にLAN内のネットワークにおけるプライベートIPアドレスの割り当てでサブネットマスクは使われます。

IPv6のIPアドレスはインターネットの急速な普及により32bit長のIPv4アドレスでは数が足りなくなる恐れがあるため、拡張されて定義されたものです。
IPv6のIPアドレスは128bitの長さで表現されます。

IP

DNS

DNS(Domain Name System)はドメイン(例: example.com)とIPアドレスの対応関係を管理するシステムであり、ユーザがサイトを見る際にIPアドレスを入力せずにドメイン名でアクセスできるためのものとなっています。(実際は検索エンジン等のおかげで入力する機会は少ない)

DNSの仕組みは階層構造になっており、DNSのキャッシュサーバにデータがない場合に権威DNSサーバに問合せしに行く仕組みになっています。(仕組みの説明は割愛)

DNS

HTML・CSSとJavaScript

HTMLはブラウザ上で表示される文章データの構造を定義するための言語でありCSSはサイトの見た目デザインを整えるための言語です。つまり皆さんが見ているWebサイトの見た目と文章などはこの2つのファイルによって制御されていると言えます。
ちなみにこの2つの言語はマークアップ言語と呼ばれ、ファイル拡張子は「.html」「.css」となります。

JavaScriptはブラウザ上で表示されるページに動きやギミックを作るためのプログラミング言語です。ボタンをクリックしたら文章の中身が表示されたり、アニメーションのあるWebサイトがあるのはこの仕組みのおかげです。
最近ではサーバサイド(後述)でも使うことができ、JavaScriptで様々なことができるようになりました。ファイル拡張子は「.js」となります。

HTTPのリクエストが正常に受け付けられた場合、これらのデータがサーバからクライアントに返送されます。

HTTPリクエストとレスポンス

HTTPはOSI参照モデル(コンピュータの通信機能を7階層の構造に分割し定義したもの)においてL7(第7層)のプロトコル(データをやり取りするための決まり事)であり、ブラウザとウェブサーバーの間でデータを送受信するためのものです。

HTTPリクエストはクライアントがサーバに送信する要求のことで、HTTPレスポンスはサーバーがクライアントに送信する応答を指します。

HTTPリクエストに対して応答されるHTTPレスポンスの内容によって通信のステータスも返送されます。
一般的に成功すれば200番台のステータスコードが返送されます。

HTTP

サーバサイド

サーバサイド(バックエンド)はクライアントから送信されたリクエストをもとにタスクを処理します。具体的にはデータベース(データの保管庫)とのやりとりやロジックの実行などがあります。
HTMLやCSSなどがユーザから見える部分の機能や見た目を提供するのに対し、サーバサイドはユーザが見えないロジック部分の処理(データの操作、処理の実行など)を提供します。

サーバサイドのサービスの開発には主にJavaやPHP、Rubyなどの言語が用いられます。最近はJavaScriptやPythonで作られることもあります。

SSL・TLS

SSL・TLSはインターネットでセキュアな通信をするためのプロトコルであり、通信の暗号化、通信相手の認証機能を提供します。
SSL・TLS機能を提供しているWebサイトはhttpsと表示されるためユーザ側はブラウザで確認が可能です。

通信内容の暗号化によりサイトなどでクレジットカード情報や個人情報を入力し送信した際のデータ傍受や改ざん等のリスクを低減することができます。また認証機能で通信先のサーバが正当であるかどうかを確認することで、サーバのなりすましなどを行う悪意のあるホストへの接続を防止することができます。

TLS