プロになるためのWeb技術入門を読んで自身で調べたり、解釈した内容を解説していきます。
リクエスト
例えば、GoogleChromで何か調べたい用語等を入力してEnterを押下したり、ECサイトで欲しい商品をクリックするなどクライアント側(Webサイトを見たり、パソコン・スマホを操作する側)が何かの情報を求めるあるいは何かの処理を依頼した際、サーバー側に情報が送られることをリクエストといいます。
レスポンス
例えばECサイトで欲しい商品をクリックするとその商品の詳細ページが表示されたり、ユーザー新規登録で情報を入力して新規登録ボタンを押下したらユーザー情報が登録されたりなど、リクエストに沿ったファイルの表示や入力情報の登録などクライアントからのリクエストに対する結果をレスポンスといいます。
プロトコル
コンピュータにおけるプロトコルとはコンピュータ同士が通信する際の通信方法の取り決め(ルール)のことです。
Webページを閲覧する際に使われる通信プロトコルで代表的ものは「HTTP」(Hypertext Transfer Protocol)というのですが、IETF (Internet Engineering Task Force) というインターネット関連の技術標準を策定する非営利団体が管理をしています。
代表的なメソッドでサーバーから情報を取得する「GETメソッド」やサーバーにデータを送信する「POSTメソッド」があり、代表的なステータスコード(リクエストの成功/失敗等の結果を表す3桁の数字)は「200 OK」や「404 Not Found」、「500 Internal Server Error」など様々なルールが取り決めされています。
もしHTTPについてより詳しく知りたい方がいましたら下記HPをご参照ください。
HTTP - MDN Web Docs
ポート番号
ポート番号とは通信をする際にホストと組み合わせて指定されるもので、コンピューター内(ホスト)の特定のアプリケーションを識別するための番号です。例えば郵便物(データ)を届ける際に建物(ホスト)だけでは届かないので部屋番号(ポート番号)を組み合わせることで郵便物(データ)が正しい場所に届くということです。
ポート番号は65,536個(0〜65535)あり、「http」では80番、「https」では443番といった具合に標準で利用すべきポート番号がプロトコルごとに決められています。
ポート番号はIANA(アイアナ)という機関が管理しています。
ステートレス
ステートレスとは通信の送受信が独立しており、前後のリクエストや送信元に関係なく処理され、状態を持たないやりとりです。(代表例:HTTP)
人間同士のコミュニケーションに例えると手紙のやりとりです。
手紙は1通ごとにのやりとりが独立しており注意深く自身で管理しておかない限り、前後関係や内容がわからなくなるような状態になるというイメージです。
ステートフル
ステートフルはステートレスと反対の状態で、通信の開始と終了が明確で、その間の一連の通信が識別できるようになっています。(代表例:WebSocket 詳しく知りたい方はこちら)
一連の通信を「セッション」と呼びます。
かなりイメージしづらいと思うのですが、人間のコミュニケーションに例えると電話のやりとりになります。
電話の場合は通話を開始すると通話を切るまで会話ができるので前後関係も内容も把握した状況でのやりとりだと思うのですが、これがセッションでありステートフルである状態といえます。
- 手紙のやりとりが「ステートレス」
- 電話のやりとりが「ステートフル」
クッキー
HTTPにはセッションの考え方がないためHTTPサーバとHTTPクライアントの間で状態を管理するために考えられたメカニズムです。
Webサイト側がユーザーの情報を一時的に保存するための仕組みとなっております。
例えばECサイトでログインしていない状態でりんごを買い物かごに入れたとします。一旦離れて再度同じECサイトでバナナを買い物かごに入れたとしてもクッキーによって前回買い物かごに入れたりんごの情報が残っているといったことです。(基本的にブラウザを終了したらクッキーも消去されるのですが、タブの復元やクッキーの種類によっては、ブラウザを終了しても消去されないものもあるみたいです。)
読んだ内容、調べた内容をなるべく自身の言葉で書かせていただきました。
わかりづらい部分もあるかと思いますが、参考になれば幸いです。
書籍の引用
小森 裕介. [改訂新版]プロになるためのWeb技術入門 (第2版). 技術評論社, 2024.
Webサイトの引用
HTTP - MDN Web Docs. 2025年2月2日最終アクセス.
https://developer.mozilla.org/ja/docs/Web/HTTP
WebSocket API (WebSockets) - MDN Web Docs. 2025年2月2日最終アクセス.
https://developer.mozilla.org/ja/docs/Web/API/WebSockets_API