「プロになるためのWeb技術入門」で学ぶ、Web技術の基本用語まとめ

リクエストとレスポンス

クライアントからサーバへの要求を リクエスト Request といい、サーバからクライアントへの応答をレスポンス Responseという。

プロトコル

複数の主体が情報をやりとりするために必要とされる取り決めのこと。主として「情報の伝達方法」と「情報の意味づけ」を規定する。

例えば、原始的な通信手段である狼煙の場合、敵襲に備えて 1. 「狼煙を使って合図を伝えること」 2. 「煙は敵の襲来を示す」 3. 「狼煙の煙を見たら、自分たちも狼煙をあげてさらに周囲に伝達すること」 といったプロトコルを設定することができる。これらの手続きが正しく共有され、各人がこの取り決めに従って行動することで初めて、意味のあるものとして情報をやりとりすることができる。

インターネットにおいても同様で、接続された膨大な数のコンピューターが、どのように情報をやりとりするか、相互にルールを共有しておく必要がある。このルールを通信プロトコル、または単にプロトコルと呼ぶ。

URL

Uniform Resource Locator 統一資源位置子 の略称。スキーム + ホスト名 + パス名を組み合わせたもの。

IPアドレス

インターネットに接続されたコンピューターに割り当てられる、個体識別のためのアドレス。0以上255以下の4つの文字の組み合わせで構成される。

DNSサーバ

DNS サーバ Domain Name System Serverは、ドメインIPアドレスの対応表を持つコンピューターのこと。URLのドメインから対応するIPアドレスを教えてくれる。クライアントがURLにアクセスすると、DNSサーバがドメインIPアドレスを変換して渡す。クライアントは得られたIPアドレスを使ってwebサーバへHTTPリクエストメッセージを送り、WebサイトのHTMLを渡すように命令する。

TCP/IP

TCP: Transmission Control Protocol と IP: Internet Protocol という2つのプロトコルからなる通信プロトコルIPアドレスにより宛先のホストを特定し、任意の情報を届けるもの。住所と宛名がIPアドレスだとすると、郵便配達がTCP/IP。情報はパケットと呼ばれる単位に分割されて、TCP/IPの責任により送受信される。

ポート

TCP/IPによって送信された情報を受け取る場所。ポートの意味は「港」。情報を受け取るための桟橋がポートである。0-65535の65536個のポートがあり、それぞれのポートでアプリケーションが情報を待っている。

http://www.littleforest.jp:80

と記述される。代表的なプロトコルで使用されるポート番号をウェル・ノウン・ポートWell known port という。例えばHTTPのポート番号は80FTP20、21HTTPS443DNS53

ステートフルとステートレス

前回のリクエストをサーバが保持し、それをふまえてリクエストを実行するプロトコルステートフル・プロトコル Stateful Protocolという。これに対し「リクエストを受けたらレスポンスを返す」だけのシンプルなやり取りを繰り返し、サーバが状態を保持しないプロトコルステートレス・プロトコル Stateless Protocolという。FTPはステートフル性、HTTPはステートレス性をもったプロトコルである。

ステートレス・プロトコルには「サーバが情報を保持しないため、通信の結果が毎回リセットされてしまう」という特徴がある。例えば、ブラウザからIDとパスワードを入力してログインをリクエストしたとする。入力された値が正しければ、サーバから「ログインできました!」とレスポンスが来る。一見ログインが成功したかのように見えるが、次の通信でログイン済ユーザー限定のページを表示するようにリクエストすると「そのページは見せられません」とレスポンスを返されてしまう。(サーバは「このユーザーはログインしている」という情報を保持しないので、未ログインユーザーとして扱ってしまう。)

ステートレス・プロトコルの抱える問題を解消する手法として、クッキーやセッションがある。

クッキー Cookie は、Webサーバがクライアントのコンピューター内に作成する小さなファイルのこと。同一のクライアントとサーバの間で通信が発生するごとに、ブラウザは前回の通信でサーバが作成したCookieをサーバに送信しクライアントの情報(例えばユーザー情報や、カートに入っている商品、クレジットカードの番号など)を渡す。これによりクライアントの状態を保持することができる。

クッキーは、HTTPのリクエスト・ヘッダやレスポンス・ヘッダを利用して運用される。またPC上にテキストファイルとして保存される。こういった仕様のため、少し知識があると個人情報を簡単にのぞけてしまう、というセキュリティ上の問題がある。

セッション Session

より安全に多くの情報を保持するための方法として考案されたのがセッション Sessionとよばれる情報の管理方法である。これは、CookieセッションIDと呼ばれる受付番号を格納する方法で、サーバはCookieからセッションIDを取り出して、メモリの中に残されたユーザーの情報を参照する。セッションIDはただの数字や文字列で意味を持たないので、セキュリティ上安全性が強い技術であるといえる。

参考文献

小森祐介. 『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか . 技術評論社. 2010.