このページでは,基本情報技術者試験をはじめとする情報処理技術者試験で必須となる,WWWについてシンプルにまとめています。HTMLの概要,HTTP(リクエスト,レスポンス,セッション管理),プロキシサーバー,Webのセキュリティ(アクセス制御,認証,HTTPS),WebシステムとWeb3層構造を解説します。繰り返し確認して,確実に理解しましょう。
WWW(World Wide Web)とは(仕組みと構成)
WWWとは,ハイパーテキストをインターネットで閲覧するためのシステムをいいます。
※ ハイパーテキスト…文書内の任意の位置に,他の文書へのリンクを埋め込むことができるテキスト。文字,画像,音声,動画などにリンクを設定できる
HTML(HyperText Markup Language)とは(Web文書と構造)
HTMLとは,ハイパーテキストを記述する言語のことをいいます。
HTTP(HyperText Transfer Protocol)とは(リクエスト/レスポンスと仕組み)
HTTPとは,WebサーバーからHTMLで記述されたWebページや,その他のファイルなどを取得するためのプロトコルをいいます。
※ TCPのポート番号80を使用する
※ 実際には,URLに対応するIPアドレスを取得(名前解決)してから,Webサーバーに接続する。名前解決の詳細は,「DNSの基礎まとめ(名前解決の問い合わせ方法)」を参照
HTTPは,HTTPリクエストとHTTPレスポンスで処理を完結するステートレスなプロトコルです。そのため,状態管理は行いません。
※ ステートレス…状態管理を行わない(以前の状態を保持しない)こと
URL(Uniform Resource Locator)とは(識別子と構造)
URLとは,インターネット上に存在する資源(ファイルなど)の位置を表記する方法です。
URI(Uniform Resource Identifier)とは(識別子の基本)
URIとは,インターネット上に存在する資源(ファイルなど)を識別するための識別子を表記する方法です。URN(インターネット上に存在する資源(ファイルなど)を識別するための名前を表記する方法)が追加された際に,定義されました。
※ URIは,URLを拡張する形で定義された
HTTPリクエストとは(構成と例)
HTTPメソッドの種類
HTTPリクエストのメソッドには,次のようなものがあります。
| GET | URLで指定したサーバーから情報を取得する |
| HEAD | URLで指定したサーバーから情報のヘッダーだけを取得する |
| POST | URLで指定したサーバーに情報を送信する |
| PUT | URLで指定したサーバーのファイルを,送信するデータに置き換える |
| DELETE | URLで指定したサーバーのファイルを削除する |
| OPTIONS | 利用可能なオプション(メソッド)の一覧を取得する |
※ 主に,GETメソッドとPOSTメソッドが使用される
GETメソッドとは(特徴と用途)
GETメソッドは,URLで指定したサーバーから情報を取得する際に使用するメソッドです。たとえば,GETメソッドによるHTTPリクエストは,次のようになります。
また,GETメソッドによるHTTPリクエストで,データを送信する場合は,次のようにします。
POSTメソッドとは(特徴と用途)
POSTメソッドは,URLで指定したサーバーに情報を送信する際に使用するメソッドです。たとえば,POSTメソッドによるHTTPリクエストは,次のようになります(データを送信する場合は,送信するデータをメッセージボディに格納します)。
GETメソッドとPOSTメソッドの比較(使い分け)
| GETメソッド | POSTメソッド | |
|---|---|---|
| 送信データの格納場所 | URLの後ろ | メッセージボディ |
| 送信データの長さの制限 | 制限あり | 制限なし |
| 送信できるデータの種類 | 文字列のみ | 文字列,数値,バイナリなど |
| セキュリティ | 低い(送信データがURLに表示され,Webブラウザの閲覧履歴に残る) | 高い(送信データがURLに表示されず,Webブラウザの閲覧履歴にも残らない) |
HTTPリクエストで使われる主なヘッダーフィールド
| Accept | 受入可能なメディアタイプ |
| Accept-Charset | 受入可能な文字セット |
| Accept-Encoding | 受入可能なエンコーディング |
| Accept-Language | 受入可能な言語 |
| Authorization | 認証情報(ユーザーIDやパスワードなど) |
| Cookie | Cookie情報 |
| From | メールアドレス |
| Host | ホスト名 |
| Referer | 参照元(直前に閲覧)のURI |
| User-Agent | ユーザーのシステムやブラウザに関する情報(プログラムの名称やバージョン) |
※ Cookie(クッキー)の詳細は後述
HTTPレスポンスとは(ステータスと構造)
たとえば,HTTPレスポンスは,次のようになります。
ステータス行にはHTTPリクエストの結果が,ヘッダーフィールドには補足情報が,メッセージボディにはリクエストしたファイルなどの内容が収められています。
主なステータスコード(意味と例)
| 200 | OK | HTTPリクエスト成功 |
| 401 | Unauthorized | 利用者認証が必要 |
| 404 | Not Found | 見つからない |
| 408 | Request Timeout | HTTPリクエスト時間切れ |
| 500 | Internal Server Error | 内部サーバーエラー |
HTTPレスポンスで使われる主なヘッダーフィールド
| Content-Encoding | コンテンツのエンコーディング |
| Content-Language | コンテンツの言語 |
| Content-Length | コンテンツのサイズ |
| Content-Type | コンテンツのメディアタイプ |
| Date | 生成した日時 |
| Location | URI以外にリダイレクト |
| Set-Cookie | クライアントに保存するCookieに関する情報 |
※ Cookie(クッキー)の詳細は後述
セッション管理とは
セッション管理とは,(電子商取引などの)処理に必要な通信の一連のやり取り(セッション)を管理することをいいます。HTTPは,ステートレスなプロトコルであり,それぞれの通信は独立しているため,セッション管理をすることはできません。よって,セッション管理が必要な場合は,クッキーなどを使用して管理します。
※ ステートレス…状態管理を行わない(以前の状態を保持しない)こと
Cookie(クッキー)とは(セッション維持の仕組み)
クッキーとは,Webサーバーがユーザーを識別するために参照するファイルのことをいい,Webブラウザ側に保存されます。
クッキーを使用するとセッションを管理できますが,ユーザーが(セキュリティ保護のために)クッキーを無効にしている場合,クッキーを使用したセッション管理はできません。よって,クッキー以外の方法でもセッションを管理できるようにしておく必要があります。
URLリライティングとは(セッションIDの埋め込み)
リンクのURLにセッションIDを埋め込むことにより,セッション管理をすることができます。
※ クッキーを使用できない場合に使われる手法
hiddenフィールドとは(セッションIDの送信)
フォームのデータにセッションIDを埋め込むことにより,セッション管理をすることができます。
※ クッキーやリンクのURLにセッションIDを埋め込む方法を補う形で使われる手法
広告
プロキシサーバーとは(役割と仕組み)
プロキシサーバーは,内部ネットワークから(インターネットなど)外部への通信を代行するサーバーです。一般的には,DMZに設置され,内部ネットワークのコンピューターから外部Webサーバーへのアクセスを中継します。
※ プロキシ…代理という意味
※ プロキシサーバーは,HTTPだけでなく,SMTP,IMAPなど,さまざまなプロトコルに対応可能
※ プロキシサーバーの詳細は,「ファイアウォールの基礎まとめ(プロキシサーバーとは)」を参照
その他の Web 技術
CGI(Common Gateway Interface)とは(Web プログラムの仕組み)
CGIとは,Webサーバーが,Webブラウザなどからの要求に応じてプログラムを実行する仕組みをいいます。
※ Webページのフォームに入力されたデータの受け渡しなどに用いられる
Webのセキュリティとは(脅威と対策)
Webのアクセス制御とは(Web への制限)
Webのアクセス制御には,次のようなものがあります。
ファイアウォールやWAFによるアクセス制御
URLフィルタリング
特定の(有害な)Webサイト(URL)の閲覧を禁止(フィルタリング)する機能
コンテンツフィルタリング
特定のキーワードなど,コンテンツの内容を基に,Webサイトの閲覧を禁止(フィルタリング)する機能
※ ファイアウォールやWAFの詳細は,「ファイアウォールの基礎まとめ」を参照
Webサイトでの認証とは
HTTP認証とは
ベーシック認証とは(仕組みと注意点)
ベーシック認証とは,利用者IDとパスワードを使用して行う認証をいいます。
※ パスワードは平文で送信される
ダイジェスト認証とは(特徴と利点)
ダイジェスト認証とは,利用者IDとパスワードを使用して行う認証をいいますが,利用者IDとパスワードは,秘匿するために,ハッシュ化したものを送信します。サーバー側では,登録済みの利用者IDとパスワードから同じようにハッシュ値を算出し,クライアントから受信したハッシュ値と比較して,一致した場合に認証します。
※ ハッシュ値(ダイジェスト値)…ハッシュ関数でハッシュ化した値
フォーム認証とは(ログイン画面など)
フォーム認証とは,Webページ中に入力フォームを準備し,そこに入力されたデータの内容により認証を行う方式をいいます。利用者IDとパスワードをフォームデータとして送信するため,HTTPSにより暗号化する必要があります。
※ 現在,一般的に利用されている
※ HTTPSの詳細は後述
HTTPヘッダーによるセキュリティ対策とは
secure属性とは(Cookieセキュリティ)
secure属性とは,クッキーを,SSL/TLSで暗号化している場合にのみ送信するようにする属性のことをいいます(クッキーに設定します)。
※ セッション鍵などにsecure属性をつける
HTTPS(HTTP over SSL/TLS)とは(暗号化通信)
HTTPSとは,SSL/TLSで暗号化した通信路上で,HTTP通信を利用できるようにする技術をいいます。クライアントがHTTPSリクエストを送信する際には,サーバー認証やクライアント認証が行われ,SSLセッションが確立されます。
※ HTTPSは,プロトコルではない
※ クライアント認証はオプション
※ SSL/TLSについては,「SSL/TLSの基礎まとめ」を参照
※ ディジタル署名については,「認証の基礎まとめ(ディジタル署名とは)」を参照
広告
Webシステムとは(3 層構造と構成要素)
Webシステムとは,Webの技術を用いて構成したシステムをいいます。
Web3層構造とは
Web3層構造とは,Webシステムのサーバー側の構成を3つの層(Webサーバー,AP(アプリケーション)サーバー,DB(データベース)サーバー)に分け,それぞれを専用のソフトウェアで実装する方式をいいます。
主なサーバーソフトウェア
| Webサーバーソフトウェア | Apache,Nginxなど |
| APサーバーソフトウェア | Apache Tomcat,WebLogic Serverなど |
| DBサーバーソフトウェア | MySQL,Oracle Databese,SQL serverなど |
開発に使用する主な言語
| APサーバー | Java,PHP,Ruby,Pythonなど |
| クライアント | HTML,CSS,JacaScript |
まとめ
今回は,WWWについてシンプルにまとめてみました。HTTPのしくみやセッション管理,Webセキュリティ,Webシステムの構造を理解し,Web技術の基礎を押さえましょう。
理解が進んだら,過去問題等にも挑戦してみてください。



