web技術の基本的な用語解説
前提
web 技術の基本をまとめた記事です。
主に、プロトコルについてまとめています。
本題
プロトコル
web アプリケーションは、Google Chrome や Safari などの web ブラウザ(クライアントサイド)と web サーバー(サーバーサイド)間でデータの通信が行われて動いています。データ通信する規則を「プロトコル」と呼び、web ブラウザからデータがリクエストされて web サーバーサイドからレスポンスされる流れのことを指します。プロトコルには、「HTTP(Hypertext Transfer Protocol)」「HTTPS(Hypertext Transfer Protocol Secure)」「FTP(File Transfer Protocol)」などがあります。
- HTTP・・・ある 1 つのリクエストに対して、1 つのレスポンスする。
- HTTPS・・・HTTP による通信を、SSL(Secure Sockets Layer)により暗号化したもの。個人情報などをデータを扱う時に利用される。(「http://~」ではなく「https://~」で始まる URL は HTTPS が使われている)
インターネットでは、複数のプロトコルにより情報がやりとりされています。パソコン内では受信した情報がどのようなプロトコルでどのアプリケーションが処理するべきかを明確にするために、「ポート」が利用されます。同じポートを複数のアプリケーションが利用することはできません。代表的なプロトコルで使用されるポートは、「ウェル・ノウン・ポート」と呼ばれています。
「ステートフル・プロトコル」と「ステートレス・プロトコル」
FTP 通信は、「ステートフル・プロトコル」と言われています。ステートフル・プロトコルは、アクセス先のサーバーと対話しながら手順を踏んでデータのやりとりをするので、以前のやりとりを覚えているものになります。
一方で、HTTP 通信は「ステートレス・プロトコル」と言われています。「ステートレス」とは、過去の状況に関係なくあるリクエストをしたら同じレスポンスされることを意味します。つまり、ユーザーの過去の行動に関係なく、サーバーは常に同じ結果を返します。ステートレス・プロトコルはシンプルですが、問題点もあります。例えば、A さんが EC サイトで欲しい物をショッピングカートに追加するとします。ステートレス・プロトコルの場合、欲しい物をショッピングカートに追加(データをサーバーに送信)したときに一回一回 A さんの情報であるかを検証するために、メールアドレスやパスワードなども送信しないとサーバー側で検証できません。
この問題に対して、web ブラウザに状態を持たす「Cookie」 という技術で解決することができます。Cookie は、サーバーからブラウザへ HTTP レスポンスのヘッダの一部の情報として送信されます。一般的に Cookie には、個人を特定できるセッション ID が格納されています。ブラウザからデータを送信するときに、リクエスト・ヘッダに Cookie も含めることで、サーバー側でセッション ID でユーザーの特定をすることが可能になります。
Cookie を確認する方法は下記の記事を参考にしてください。
参考書籍・参考記事
Discussion