プロになるためのWeb技術入門を読み、重要用語をまとめた

プロになるためのWeb技術入門を読み、重要用語をまとめた

Web開発の学習にあたり、全般的な知識を学ぶために、『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか:書籍案内|技術評論社 を読んだので、重要用語を自分なりの言葉でまとめたい。

ステートフル・ステートレス

本書では、ステートフル・ステートレスという言葉が、ログイン状態を以下に保つか。という文脈において解説された。

HTTPは状態を持てないために、ログイン状態を保つことができない。そのため、ログイン状態を保つためには、クッキー・セッションという仕組みを用いる必要がある。

逆のステートフルの例としては、FTPが挙げられていた。

FTPにおいてファイルをやり取りをするリクエストを完結させるまでには、ID/パスワードを通知して許可を得てから、必要なやり取りを実施する必要がある。 一方で、HTTPにおける通信では基本的にリクエスト1つに対して、レスポンス1つが返ってくる。

ステートフルとレスでは一長一短があるが、認証が不要で、オーバーヘッド(本来目的とするの通信以外に発生するやり取り)が少ないHTTPは、WWWを実現するために考案された。

リクエスト・レスポンス・プロトコル

WWWを実現するためにステートレスなHTTPが考案されたが、HTTPはクライアントとサーバのやり取りの方法として用いられる。

HTTPのような情報のやり取りに関する取り決めをプロトコルといい、クライアントからサーバへの要求をリクエスト・サーバからクライアントへの返答をレスポンスという。

クッキー・セッション

ログイン状態を保つためには、クライアント側にログイン状態を保持する仕組みが必要である。

それがクッキーとセッションだ。クライアントとサーバ、つまりWebブラウザとWebサーバの間でやり取りされ、情報の交換を可能にしたのがクッキーである。

その仕組みは、WebサーバからWebブラウザにへHTTPレスポンスの中にクッキーを含めて送信する。Webブラウザはクッキーを保存しておき、次回以降のリクエストの際には、クッキーをHTTPリクエストの中に含めて送信するというものである。

しかし、クッキーを利用した情報のやり取りはHTTPのリクエストヘッダやレスポンスヘッダに含まれるため、情報が盗まれる可能性がある。そこで、セッションという仕組みが考案された。セッションとは、Webサーバ側で処理の進行状況を管理するための仕組みである

セッションは、Webサーバ側でセッションIDという一意なIDを発行し、IDごとに処理の進行状況をサーバ側に保存する。発行したIDをクッキーに保存してWebブラウザに送信する。

Webブラウザは、セッションIDを保存しておき、次回以降のリクエストの際には、セッションIDをHTTPリクエストの中に含めて送信する。サーバ側は、セッションIDをもとに、処理の進行状況を管理する。

サーバ側ではセッションIDごとに、処理の状況を随時管理する必要が生じるため、データの蓄積コストが増えるが、ブラウザとのやり取りの際には、セッションIDのみをやり取りするため、情報の漏洩を防ぐことができる。

ポート番号

TCP/IPでは、通信の相手を識別するためにIPアドレスを用いる。しかし、IPアドレスだけでは、どのアプリケーションと通信するのかを識別することができない。

そこで、アプリケーションを識別するためにポート番号が用いられる。ポート番号は、0から65535までの範囲で指定することができる。

情報を受け取る側のアプリケーションは、ポート番号を指定して待ち受け状態になる。情報を送信する側のアプリケーションは、ポート番号を指定して送信する。

アプリケーションごとにどのポート番号を使用するか指定する必要があるが、HTTPの場合は、80番ポートなど、よく使われるプロトコルには、デフォルトでポート番号が決められている。 このようなポート番号を、ウェルノウンポート番号という。

まとめ

ひとまず、重要な用語をまとめてみたが、実際にいくつかWebアプリケーションを作成してみないと、理解が深まらないと思う。

本書で紹介された内容を思い出しながら、これからの学習を進めていきたい。