WWW -情報処理シンプルまとめ

WWWに関するブログのアイキャッチ画像 ネットワーク

 基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,WWWについてシンプルにまとめています。WWWとHTMLの説明からはじめ,HTTP(HTTPの概要,URI(URL、URN),HTTPリクエスト(GETメソッド,POSTメソッド,GETメソッドとPOSTメソッドの比較,主なヘッダーフィールド),HTTPレスポンス(主なステータスコード,主なヘッダーフィールド),セッション管理(Cookie,リンクのURLにセッションIDを埋め込む方法(URLリライティング),フォームのデータにセッションIDを埋め込む方法(hiddenを使用))),プロキシサーバー,Webのセキュリティ(ファイアウォールやWAFによるアクセス制御,URLフィルタリング,コンテンツフィルタリング,Webサイトでの認証(ベーシック認証,ダイジェスト認証,フォーム認証),HTTPヘッダーによるセキュリティ対策(secure属性),HTTPS(サーバー証明書(SSL証明書),サーバー認証,クライアント認証))について説明しています。覚えることが多いですが,一つ一つ丁寧に理解するよう努めましょう。

WWW(World Wide Web)

 WWWとは,ハイパーテキストをインターネットで閲覧するためのシステムをいいます。

※ ハイパーテキスト…文書内の任意の位置に,他の文書へのリンクを埋め込むことができるテキスト。文字,画像,音声,動画などにリンクを設定できる

HTML(HyperText Markup Language)

 HTMLとは,ハイパーテキストを記述する言語のことをいいます。

※ HTMLの詳細は,「」を参照

HTTP(HyperText Transfer Protocol)

 HTTPとは,WebサーバーからHTMLで記述されたWebページや,その他のファイルなどを取得するためのプロトコルをいいます。

※ TCPのポート番号80を使用する

※ 実際には,URLに対応するIPアドレスを取得(名前解決)してから,Webサーバーに接続する。名前解決の詳細は,「DNS-名前解決の問い合わせ方法 -情報処理シンプルまとめ」を参照

HTTPリクエストに関する説明画像

 HTTPは,HTTPリクエストとHTTPレスポンスで処理を完結するステートレスなプロトコルです。そのため,状態管理は行いません。

※ ステートレス…状態管理を行わない(以前の状態を保持しない)こと

ステートレスに関する説明画像

URL(Uniform Resource Locator)

 URLとは,インターネット上に存在する資源(ファイルなど)の位置を表記する方法です。

URLに関する説明画像

URI(Uniform Resource Identifier)

 URIとは,インターネット上に存在する資源(ファイルなど)を識別するための識別子を表記する方法です。URN(インターネット上に存在する資源(ファイルなど)を識別するための名前を表記する方法)が追加された際に,定義されました。

※ URIは,URLを拡張する形で定義された

URIに関する説明画像

HTTPリクエスト

メソッドの種類

 HTTPリクエストのメソッドには,次のようなものがあります。

GETURLで指定したサーバーから情報を取得する
HEADURLで指定したサーバーから情報のヘッダーだけを取得する
POSTURLで指定したサーバーに情報を送信する
PUTURLで指定したサーバーのファイルを,送信するデータに置き換える
DELETEURLで指定したサーバーのファイルを削除する
OPTIONS利用可能なオプション(メソッド)の一覧を取得する

※ 主に,GETメソッドとPOSTメソッドが使用される

GETメソッド

 GETメソッドは,URLで指定したサーバーから情報を取得する際に使用するメソッドです。たとえば,GETメソッドによるHTTPリクエストは,次のようになります。

GETリクエストの例1

 また,GETメソッドによるHTTPリクエストで,データを送信する場合は,次のようにします。

GETリクエストの例2
POSTメソッド

 POSTメソッドは,URLで指定したサーバーに情報を送信する際に使用するメソッドです。たとえば,POSTメソッドによるHTTPリクエストは,次のようになります(データを送信する場合は,送信するデータをメッセージボディに格納します)。

POSTメソッドの例
GETメソッドとPOSTメソッドの比較
GETメソッドPOSTメソッド
送信データの格納場所URLの後ろメッセージボディ
送信データの長さの制限制限あり制限なし
送信できるデータの種類文字列のみ文字列,数値,バイナリなど
セキュリティ低い(送信データがURLに表示され,Webブラウザの閲覧履歴に残る)高い(送信データがURLに表示されず,Webブラウザの閲覧履歴にも残らない)

HTTPリクエストで使われる主なヘッダーフィールド

Accept受入可能なメディアタイプ
Accept-Charset受入可能な文字セット
Accept-Encoding受入可能なエンコーディング
Accept-Language受入可能な言語
Authorization認証情報(ユーザーIDやパスワードなど)
CookieCookie情報
Fromメールアドレス
Hostホスト名
Referer参照元(直前に閲覧)のURI
User-Agentユーザーのシステムやブラウザに関する情報(プログラムの名称やバージョン)

※ Cookie(クッキー)の詳細は後述

HTTPレスポンス

 たとえば,HTTPレスポンスは,次のようになります。

HTTPレスポンスの例

 ステータス行にはHTTPリクエストの結果が,ヘッダーフィールドには補足情報が,メッセージボディにはリクエストしたファイルなどの内容が収められています。

主なステータスコード

200OKHTTPリクエスト成功
401Unauthorized利用者認証が必要
404Not Found見つからない
408Request TimeoutHTTPリクエスト時間切れ
500Internal Server Error内部サーバーエラー

HTTPレスポンスで使われる主なヘッダーフィールド

Content-Encodingコンテンツのエンコーディング
Content-Languageコンテンツの言語
Content-Lengthコンテンツのサイズ
Content-Typeコンテンツのメディアタイプ
Date生成した日時
LocationURI以外にリダイレクト
Set-Cookieクライアントに保存するCookieに関する情報

※ Cookie(クッキー)の詳細は後述

セッション管理

 セッション管理とは,(電子商取引などの)処理に必要な通信の一連のやり取り(セッション)を管理することをいいます。HTTPは,ステートレスなプロトコルであり,それぞれの通信は独立しているため,セッション管理をすることはできません。よって,セッション管理が必要な場合は,クッキーなどを使用して管理します。

※ ステートレス…状態管理を行わない(以前の状態を保持しない)こと

Cookie(クッキー)

 クッキーとは,Webサーバーがユーザーを識別するために参照するファイルのことをいい,Webブラウザ側に保存されます。

クッキーに関する説明画像

 クッキーを使用するとセッションを管理できますが,ユーザーが(セキュリティ保護のために)クッキーを無効にしている場合,クッキーを使用したセッション管理はできません。よって,クッキー以外の方法でもセッションを管理できるようにしておく必要があります。

リンクのURLにセッションIDを埋め込む方法(URLリライティング)

 リンクのURLにセッションIDを埋め込むことにより,セッション管理をすることができます。

※ クッキーを使用できない場合に使われる手法

URLリライティングに関する説明画像

フォームのデータにセッションIDを埋め込む方法(hiddenを使用)

 フォームのデータにセッションIDを埋め込むことにより,セッション管理をすることができます。

※ クッキーやリンクのURLにセッションIDを埋め込む方法を補う形で使われる手法

hiddenの使用に関する説明画像

プロキシサーバー

 プロキシサーバーは,内部ネットワークから(インターネットなど)外部への通信を代行するサーバーです。一般的には,DMZに設置され,内部ネットワークのコンピューターから外部Webサーバーへのアクセスを中継します。

※ プロキシ…代理という意味

※ プロキシサーバーは,HTTPだけでなく,SMTP,IMAPなど,さまざまなプロトコルに対応可能

※ プロキシサーバーの詳細は,「ファイアウォール-ファイアウォールの分類-アプリケーションレベルゲートウェイ方式-プロキシサーバー -情報処理シンプルまとめ」を参照

ファイアウォール -情報処理シンプルまとめ
基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,ファイアウォールについてシンプルにまとめています。ファイアウォールの概要と機能の説明からはじめ,DMZ,バリアセグメント,ファイアウォールの構成(ファイアウォールを1台設置し公開サーバーをバリアセグメントに設置する場合,ファイアウォールを1台設置し公開サーバーをDMZに設置する場合,ファイアウォールを1台設置し公開サーバーをバリアセグメントに設置する場合,ファイアウォールを2台設置する場合),公開サーバー,ファイアウォールの分類(パケットフィルタリング方式(ACL(アクセス制御リスト),静的フィルタリング(スタティックパケットフィルタリング),動的フィルタリング(ダイナミックパケットフィルタリング),ステートフルインスペクション),サーキットゲートウェイ(トランスポートゲートウェイ)方式,アプリケーションレベルゲートウェイ方式(プロキシサーバー,リバースプロキシサーバー)),ファイアウォールの管理(ACLの管理,ログの管理(ログサーバー,syslog)),ファイアウォールの付加機能(認証と暗号化,侵入検知と侵入防止,ウイルススキャン,スパムメールフィルタリング),WAF(ブラックリスト方式,ホワイトリスト方式,シグネチャベース方式,ルールベース方式)を説明しています。いろいろありますので定着には時間がかかると思いますが,じっくり読んでみましょう。

Webのセキュリティ

Webのアクセス制御

 Webのアクセス制御には,次のようなものがあります。

ファイアウォールやWAFによるアクセス制御

URLフィルタリング

 特定の(有害な)Webサイト(URL)の閲覧を禁止(フィルタリング)する機能

コンテンツフィルタリング

 特定のキーワードなど,コンテンツの内容を基に,Webサイトの閲覧を禁止(フィルタリング)する機能

※ ファイアウォールやWAFの詳細は,「ファイアウォール -情報処理シンプルまとめ」を参照

Webサイトでの認証

HTTP認証

ベーシック認証

 ベーシック認証とは,利用者IDとパスワードを使用して行う認証をいいます。

※ パスワードは平文で送信される

ダイジェスト認証

 ダイジェスト認証とは,利用者IDとパスワードを使用して行う認証をいいますが,利用者IDとパスワードは,秘匿するために,ハッシュ化したものを送信します。サーバー側では,登録済みの利用者IDとパスワードから同じようにハッシュ値を算出し,クライアントから受信したハッシュ値と比較して,一致した場合に認証します。

※ ハッシュ値(ダイジェスト値)…ハッシュ関数でハッシュ化した値

フォーム認証

 フォーム認証とは,Webページ中に入力フォームを準備し,そこに入力されたデータの内容により認証を行う方式をいいます。利用者IDとパスワードをフォームデータとして送信するため,HTTPSにより暗号化する必要があります。

※ 現在,一般的に利用されている

※ HTTPSの詳細は後述

HTTPヘッダーによるセキュリティ対策

secure属性

 secure属性とは,クッキーを,SSL/TLSで暗号化している場合にのみ送信するようにする属性のことをいいます(クッキーに設定します)。

※ セッション鍵などにsecure属性をつける

secure属性の例

HTTPS(HTTP over SSL/TLS)

 HTTPSとは,SSL/TLSで暗号化した通信路上で,HTTP通信を利用できるようにする技術をいいます。クライアントがHTTPSリクエストを送信する際には,サーバー認証やクライアント認証が行われ,SSLセッションが確立されます。

※ HTTPSは,プロトコルではない

※ クライアント認証はオプション

※ SSL/TLSについては,「」を参照

HTTPS通信の流れに関する説明画像

※ ディジタル署名については,「認証-ディジタル署名 -情報処理シンプルまとめ」を参照

まとめ

 今回は,WWWについて,シンプルにまとめてみました。一つ一つ丁寧に理解し,覚えるように努めましょう。