概要
World Wide Web(WWW)は、インターネット上の情報をハイパーテキスト形式で参照できる情報共有システムです。ユーザーは文中のリンクを通じて、関連する情報や文書に簡単にアクセスできます。このリンクが蜘蛛の巣のように張り巡らされていることから、WWWという名前が付けられました。
WWWの情報を表示するためのクライアントソフトウェアをWebブラウザと呼びます。Webブラウザを使用することで、情報の場所を意識せずにアクセスできます。Webブラウザの画面に表示される情報全体をWebページと呼び、その中で特に見出しとして使われるページをホームページと呼びます。
WWWでは大別して下記の3つが定義されています。
1 | 情報へのアクセス手段と位置 | URI |
2 | 情報の表現フォーマット | HTML |
3 | 情報の転送などの操作 | HTTP |
URI
例えば、httpスキームのURIは以下のような形式です。
- http://ホスト名 / パス
- http://ホスト名:ポート番号 / パス
- http://ホスト名:ポート番号 / パス ? 問い合わせ内容 # 部分情報
それぞれの情報は下記の内容を表しています。
ホスト名 | ドメイン名やIPアドレスを表す。 |
ポート番号 | トランスポート番号を表し、省略時には80が採用されます。 |
パス | そのホスト上の情報の位置を表す。 |
問い合わせ内容 | CGIなどに伝える情報を表す。 |
部分情報 | 表示されるページ内での位置などを表す。 |
HTML
HTML5・CSS3
HTML5は音声や動画の再生機能を含み、多様なAPIを提供しています。また、過去のHTML4と比べて要素や属性が見直され、文章の構造を明確に示すことが可能になりました。一方、CSS(Cascading Style Sheets)はHTML要素のスタイルを指定する言語であり、CSS3では画像を使わずにボタンなどの要素をスタイリングできます。HTML5とCSS3を組み合わせることで、文章の構造とデザインを分離し、異なる画面サイズにも対応したレスポンシブデザインが容易になりました。
HTTP
HTTP(HyperText Transfer Protocol)は、HTMLや画像、音声、動画などのコンテンツをTCPを使って送受信するプロトコルです。クライアントはHTTPサーバー(Webサーバー)との間で情報の要求と応答を行います。具体的には、ユーザーがブラウザにURIを入力すると、HTTPの処理が開始されます。クライアントはまずポート80でサーバーとTCPコネクションを確立し、その経路を通じてコマンド、応答、データからなるメッセージの送受信を行います。
HTTPのバージョンには以下のようなものがあります:
-
HTTP/1.0: 初期のバージョンで、1つの要求に対して1つの応答を行う方式です。
-
HTTP/1.1: 複数の要求と応答を1つのTCP接続で行うことができるようになり、パフォーマンスが向上しました。このバージョンでは持続的接続(Persistent Connection)という仕組みが導入されています。
-
HTTP/2: 1つの接続での並列処理やバイナリデータの使用によるデータ量の削減、ヘッダーの圧縮、サーバープッシュ技術などにより、ネットワークリソースの効率化が図られています。
-
HTTP/3: UDPを採用することで多数のクライアント接続をサポートし、Webページの高速読み込みを実現しています。
HTTPにはBasic認証とDigest認証の2種類の認証方式があり、これらを使用してアクセス制御が可能です。Basic認証では、base64でエンコードされたIDとパスワードが平文で送信されるため、HTTPSの暗号化通信と併用することが推奨されています。一方、Digest認証ではMD5でハッシュ化された情報が送信され、より高い安全性が確保されますが、近年はMD5が解析可能なアルゴリズムとなっており、安全性が危険視されています。
Webアプリケーション
WWWはCGIやJavaScriptによってさまざまなアプリケーションをWebブラウザで利用できるようになりました。これらのWebアプリケーションについて紹介します。
JavaScript
JavaScriptは、Webブラウザで動作するクライアントサイドアプリケーションを作成するためのプログラムング言語で、HTMLに直接埋め込むことができます。JavaScriptがHTMLとともにHTTPでダウンロードされると、クライアント側でそのプログラムが実行されます。具体的には、入力値の範囲チェックや未入力の確認処理、HTMLやXMLドキュメントの構造を操作して、Webページの情報を動的に変更することができます。
近年、Webページ上でのデータの活用をより容易にするために、WebAPIと呼ばれるデータのやり取りをサポートする仕組みも広く利用されています。
CGI
CGI(Common Gateway Interface)はWebサーバーが外部プログラムを呼び出すサーバーサイドアプリケーションの仕組みです。通常の通信ではクライアントからの要求に対してサーバーが保存しているデータを静的に応答します。しかし、CGIを利用することで、外部プログラムを呼び出してクライアントの入力内容に対応した応答を返す事が出来ます。
クッキー
WebSocket
チャットやゲームなどのアプリケーションで、クライアントとサーバー間で双方向通信を実現するためのプロトコルです。通常、HTTPのupgradeリクエスト/レスポンスを利用して双方向通信を確立しており、このプロトコルを使うことでリアルタイムなデータの送受信が可能になります。
コメント