tak220's Programming Learning Reports

プログラミングスクールに入会した駆け出しエンジニアによるブログです。

Web技術の基本的な用語を説明してみる

はじめに

今回は、Webの基本となる技術を学べる著書 「『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか」 著: 小森 裕介 を読みましたので、その中から学習した用語の説明を行いたいと思います。

プロトコル

コンピュータ同士が通信をやり取りする際に、情報のやり取り方法をあらかじめ決めておかなければなりません。この取り決めをプロトコル (Protocol) といいます。

例えば、音や光の長短の組み合わせで文字を表すことのできるモールス信号は、あらかじめどの組み合わせが何の文字を表すかを国際的な規格により決められています。このモールス信号もプロトコルの一種です。

HTTP (HyperText Transfer Protocol) は、WebサーバとWebクライアントが情報のやり取りをするために考案されたプロトコルです。

ポート番号

コンピュータが通信を行う際、Webの閲覧やファイルの転送、メールの送受信など、様々な種類の通信を行っています。ポート番号 (Port Number) は、それがどの種類の通信なのかを区別するために割り当てられた番号のことです。

ポート番号は0番から65535番までの範囲で設定されており、その中でも代表的なプロトコルで使用されるポート番号は「well-known ports」と呼ばれています。

代表的な「well-known ports」の一部

ポート番号 プロトコル
80 HTTP
20, 21 FTP (ファイル転送)
25 SMTP (メールの送信)
443 HTTPS

ポート番号があることで、通信が正確かつ効率的に行われます。

リクエスト、レスポンス

リクエスト (Request) とは、クライアント (主にWebブラウザ) がサーバに対して行う要求のことです。

ユーザーがWebページにアクセスすると、ブラウザはサーバにHTTPリクエストを送信します。そこにはページ表示の要求やフォームに入力した情報の送信などが含まれます。

そのリクエストに対してサーバがクライアントに返す応答のことをレスポンス (Response) といいます。レスポンスによってリクエストした内容の結果が返ります。

ステートフル

サーバがクライアントとの過去のやり取りを覚えている状態のことをステートフル (Stateful) といいます。

例えば、ユーザーがサーバにログインをした後、別の通信を行う際に、サーバがユーザーの状態を「ログイン済み」として覚えているような状態のことを指します。

ファイルのやりとりを通信で行うFTPは、通信のやり取りを行うたびにその内容を覚えているため、ステートフルなプロトコルです。

ステートレス

ステートフルに対して過去のやり取りを覚えていない状態のことをステートレス (Stateless) といいます。

HTTPはステートレスなプロトコルのため、毎回情報を保持しない状態で通信します。

クッキー

ではサーバはどうやってHTTP上でユーザーのログイン状態などの情報を保持するのかというと、クッキー (Cookie) という技術を利用することによって実現しています。

サーバはユーザーがログインしている状態をHTTPレスポンスを利用してクッキーと呼ばれる小さな情報をクライアントへ送ります。

クライアントは次にリクエストする際、受け取ったクッキーをそのまま送信します。

このやり取りのおかげで、ステートレスなプロトコルであるHTTPでも状態の保持が実現できるわけです。

さいごに

Webの仕組みを知ることができて大変勉強になりました。

ご覧いただきありがとうございました。

参考: 小森 裕介 「『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか」, 技術評論社, 2010年4月10日