goo blog サービス終了のお知らせ 

gooブログはじめました!

Webサイトを閲覧できる仕組み、「WWW」を支える3つの技術とは。

〇 Webサイトの閲覧は、インターネットの重要な用途だ。それを実現する仕組みをWWWと言う。今回はWWWを支える3つの技術を解説する。

インターネットでWebサイトを閲覧できる仕組みをWorld Wide Webと言う。略してWWW、もしくはWebと呼ぶことも多い。

WWWの特徴は、ページ中のリンクをクリックすると別のページにジャンプする仕組みを持つこと。これにより、世界中のWebサイトにある情報を、次々とジャンプしながら参照できる世界が実現した(図1)。

リンクで世界の情報をつなぐWWW
Θ リンクで世界の情報をつなぐWWW。
図1、WWWではページ内のリンクをクリックするだけで外部のページを開けるようになり、世界中の情報へのアクセスが格段に容易になった。

このようにテキスト間をジャンプできる仕組みをハイパーテキスト(HyperText)と呼ぶ。WWWはインターネットでハイパーテキストを実現する仕組みだ。もっとも、現在のWWWでは、テキスト(文書)だけでなく、画像や映像、音声など、文字以外の情報にもアクセスできるし、買い物などのサービスも受けられる。さらに、Webサイトがアプリのように動作することもある。WWWは、より広い領域をカバーする、インターネットの技術基盤になっていると言える。

情報の所在を指すURL。

そんなWWWを支える基本的な技術は3つある。URL、HTTP、HTMLだ(図2)。HTTPやHTMLの名称にHyperTextが含まれていることからも、WWWの成立にハイパーテキストの機能がいかに重要だったかが分かる。

WWWを実現する3要素
Θ WWWを実現する3要素。
図2、WWWは、情報の所在を示すURL、通信プロトコルのHTTP、情報がリンクするページを表現するHTMLという3つの技術を中心に実現されている。

URLは、インターネット上のデータやサービスの所在を特定する文字列で、一般には(Webサイトの)「アドレス」として認識されることが多い。厳密には、インターネット上でリソースを特定する名前を指すURN(Uniform Resource Name)とセットで、URI(Uniform Resource Identifier)と呼ばれるのだが、本講座ではなじみのあるURLで統一する。

URLの基本的な構造を図3に示す。スキーム、権限、パス、クエリ、フラグメントの順に情報が並ぶ。Webサイトへのアクセスでは、権限に当たるドメイン名以降を省略できることもあるが、その際にはサーバー側の処理で適切なページが提供されている。

URLの構造
Θ URLの構造。
図3、URLの基本的な構造。冒頭のスキームによって、単に所在を示すだけでなく、そのリソースへの到達手段も指定できるのが特徴だ。リソースの種類によって、一部の情報が省かれたり、書式が異なったりすることもある。

パスの後の「?」で始まるクエリは、Web検索時の検索結果のページのURLとして目にする機会が多い(図4)。ちなみに、図4のURLに含まれる「日経パソコン」の語句は、実際には英数記号に変換(エンコード)されているが、Webブラウザーが日本語表記で表示している。

Googleの検索結果のURL
Θ Googleの検索結果のURL。
図4、GoogleでWeb検索した結果のページのURLを見ると、入力した検索語などのさまざまな情報がクエリに含まれていることが分かる。

スキームは多種多様。

URLの先頭に入るスキームは、Webサイトの利用では通信プロトコルを指すhttpか、http通信の暗号を指定するhttpsが入るのが普通だ。しかし、URLで指定可能なスキームはかなりバリエーションが広い(図5)。

スキームはhttpだけではない
Θ スキームはhttpだけではない。
図5、URLで使用できるスキームの例。アプリによって対応するスキームは異なる。Webブラウザーでは、規格外で固有のスキームを利用することもある。

分かりやすいところでは、パソコンにダウンロードしたPDFファイルをWebブラウザーで開くケースがある。URLのスキームは「file」で、権限が省略されて「///」という表記になり、PDFファイルのパス(ドライブ、フォルダー、ファイル名)が続く。

Webブラウザーでは、ファイル転送専用のプロトコルのFTPを利用して、FTPサーバーとファイルを送受信することもあった。しかし、最近はセキュリティ上のリスクを避けるため、「Edge」や「Chrome」などではこの機能が削除されている。

特殊なスキームとしては、メールアドレスを指定するmailtoや、電話番号を指定するtelがある。Webサイトに書かれたメールアドレスをクリックすると、メールアプリの新規メッセージ作成画面が開いたり、スマートフォンでページ中の電話番号をタップすると電話をかけられたりするのは、これらのスキームをWebブラウザーが処理してほかのアプリに制御を渡した結果だ。EdgeやChromeなどのアドレスバーに、「mailto:(メールアドレス)」と入力して、動作を実験することもできる(図6)。

mailtoの動作
Θ mailtoの動作。
図6、「Edge」のアドレスバーに「mailto:(メールアドレス)」と入力し、URLとして開くと(地球儀のアイコン)、メールアプリの新規作成画面が開く。利用状況によっては、アプリの選択画面が表示される場合もある。

EdgeやChromeは、Webブラウザーが自分自身の情報を表示するために独自のスキームを利用している(図7)。Edgeでは「edge」、Chromeでは「chrome」が使われている。両アプリで設定画面を開くと、URLが割り当てられていることが分かる。どちらのアプリでも、URLとして「(Webブラウザー名)://flags」を開くと、通常の操作ではアクセスできない、試験段階の機能をオン/オフする画面が表示される(図8)。どちらのアプリもオープンソースプロジェクトの「Chromium」をベースに開発されていることによる共通点だろう。

Webブラウザー固有のスキーム
Θ  Webブラウザー固有のスキーム。
図7、Edgeの設定画面でアドレスバーを見ると、「edge://settings/profiles」などEdge独自のスキームのURLを開いていることが分かる。
 
隠し設定へのアクセスも
Θ 隠し設定へのアクセスも。
図8、Edgeのアドレスバーに「edge://flags」と入力して開くと、試験段階の機能の有効/無効を切り替える特殊な設定画面を開ける。

HTTPでデータを取得。

パソコンやスマートフォンといったユーザー側の端末(クライアント)がWebサーバーからデータを受け取る通信プロトコルには、専用の規格である「HTTP」が利用されている。スキームの「http」はこれだ。一方、通信を暗号化するスキームは「https」だが、こちらはプロトコルの名前ではない。httpの通信を、ほかの規格を組み合わせてセキュア(Secure/安全)に行うという指定だ。その仕組みについては、別の回で取り上げる。

HTTPによる通信は、サーバーに対するリクエスト(要求)と、それに対するサーバーのレスポンス(応答)によって実行される(図9)。リクエストとレスポンスには、それぞれ図9のような情報が含まれる。

HTTPの通信で使われる情報
Θ HTTPの通信で使われる情報。
図9、WWWでWebページにアクセスする際には、プロトコルとしてHTTPが使われる。通信は、クライアントからのリクエストに対してサーバーがレスポンスを返す形式で行われ、図のような情報がやり取りされる。

リクエストのメソッドに、図3のURLの書式で示した「#」で始まるフラグメントは含まれない。フラグメントの情報は、Webページだとページの途中に表示位置を移動する目印(アンカー)として利用されるが、Webブラウザー側で処理が完結するため、サーバーには送信されないからだ。

サーバーからの応答にある「ステータスコード」は、リクエストに対する処理結果を示す情報で、3桁の数字で示される。間違ったURLを開こうとして、ときどき「404. not find」などの表示を見ることがある。この「404」などがステータスコードだ。

Webブラウザーで情報を見る。

EdgeやChromeでは、アプリに内蔵されている「開発者ツール」という機能を使って、WebブラウザーとWebサーバーとの通信内容をのぞき見できる(図10)。開発者ツールで「ネットワーク」の情報として「ヘッダー」を選ぶことで、メソッドなどを含む通信内容の概要が分かる(図11)。ヘッダーにはいろいろな種類がある。主なヘッダーの説明を図12に示す。

開発者ツールで情報を見る
Θ 開発者ツールで情報を見る。
図10、Edgeの開発者ツールでページのヘッダー情報を見る手順。「ネットワーク」を選んでからページを開く。続けて「ドキュメント」を選ぶと現在のページを選択対象にできるので、クリックしてから「ヘッダー」を表示させよう。
 
要求ヘッダーの情報
Θ 要求ヘッダーの情報。
図11、図10の画面で「要求ヘッダー」の内容には、メソッド(Method)など、ヘッダー以外のリクエスト内容も含まれている。
 
主なヘッダーの意味
Θ 主なヘッダーの意味。
図12、HTTPのリクエストヘッダーとレスポンスヘッダーの例。実際にはもっと多くのヘッダー情報が利用されている。

HTTPには複数のバージョンがある。初期のHTTP/1.0は、1つのリソースを取得するたびに接続の確立と切断が必要で、通信効率が悪かった(図13)。しかし、HTTP/1.1で一度確立した接続を複数のリソースを取得するのに使えるようになった。

通信効率を上げる工夫
Θ 通信効率を上げる工夫。
図13、HTTP/1.0ではリクエストごとに独立した通信しかできなかったが、HTTP/1.1やHTTP/2で連続的な通信や、同時並行的な通信が実現した。

後継のHTTP/2では、リクエストの順番に影響されず、並行して複数の通信ができるようになった。さらに、HTTP/1.1までは、通信の内容を人間が読めるテキスト情報(プレーンテキスト)で送っていたが、HTTP/2はコンピューターでの処理に適したバイナリー形式を使う方式となり、効率的な通信が可能となった。

さらに、2022年には最新バージョンのHTTP/3が正式な規格として成立した。これまでTCP上でなされていた通信を、UDPで行う形式に改めるなどして、より高速な通信を実現している。米グーグルの主導で開発された規格だ。EdgeやChromeなど、主要なWebブラウザーは既に対応済みであり、サーバー側の対応が進めば、Webの利用がさらに快適になりそうだ。

ページを表現するHTML。

Webブラウザーに表示されるページの内容は、HTMLという規格のデータで表現される。データの実体は文字のみのプレーンテキストだが、本文などの文章だけでなく、ページのレイアウトなどの多くの情報も一定の表記ルールで書かれている。Webブラウザーは、受信したデータを解釈して、指示されたように描画しているのだ。

このように、本文と一緒にテキストで付加情報を記述するルールをマークアップ言語(ランゲージ)と言う。HTMLは、「ハイパーテキストを記述するマークアップ言語」という意味だ。開発者ツールを使うと、現在表示しているページの元データ(ソース)を見ることができる(図14)。ソース中で「<」と「>」に挟まれているのが、タグと呼ばれる付加情報だ。

ページの「ソース」を見る
Θ  ページの「ソース」を見る。
図14、開発者ツールの表示を「ソース」に切り替えて、現在のページを選ぶと、サーバーから受信したページのソースを見ることができる。

写真や音声など文字以外のデータは、ページのソースには含まれていない。別のリソースを読み込むよう指定されている(図15)。別のページを開く「リンク」もタグで設定されている。

写真やリンクはタグで指定
Θ 写真やリンクはタグで指定。
図15、Webページの例。写真は「<img>」タグで外部のファイルを参照してWebブラウザー上で表示。リンクは「<a>」タグで挟んだ文字列に対して、参照先のURLを設定している。

現在のWWWでは、ページ内でデータを処理する簡易プログラミング言語であるJavaScriptなど、多くの周辺技術も標準規格で定められている。アプリのように動作するWebサイトは、こうした技術の組み合わせで実現されている(図16)。

Webサイトをアプリのように使う
Θ Webサイトをアプリのように使う。
図16、グーグルの地図サービスである「Googleマップ」は、Webサイトがアプリのように使える「Webアプリ」の代表的な存在だ。

ランキングに参加中。クリックして応援お願いします!

名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「〝 たぬき の 「 スマホ ・ パソコン 」 ワールド 〟」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事