第03回 HTTPの基礎
今回はWWW(=ウェブ)を構成する最も重要な3つの規格―HTML,HTTP,URIのうちHTTPについて学ぶ.
HTTPは Hyptertext Transfer Protocol の略称であり, ざっくり言えば「遠隔に存在するコンピューターからファイルを取り出すための取り決め」である. WWW(=ウェブ)においてはページを構成する様々なファイルはこの取り決めを用いて取得されている. 公的な規格としては,RFC 9112,で定義されている.
その前に通信における「プロトコル」とか「取り決め」という概念について説明しておこう.
諸君らの中にコンビニエンスストアなどの店頭で買い物をしたことがない者はいないと思うが, どんな店でもレジでの会計の際はほとんど店員としゃべる必要がないのはなぜだろうか? それはレジにおけるやり取りが決まり切っているからである. 一般的なレジ会計の流れは以下のようになるだろう.
- 客→レジ係:商品を渡して会計を依頼する.
- レジ係→客:合計金額を計算して支払いを求める.
- 客→レジ係:提示された金額のお金を渡して支払う.
- レジ係→客:釣銭・レシートを渡す.
このやり取りはレジ会計をする店であればコンビニエンスストアに限らずどこであってもおおむね同じである. そしてこれがいわば通信におけるプロトコルの概念の一例である. 通信にはそれにかかわる二者(送信者と受信者)が必ず存在するが,その際の呼びかけや応答の流れに関する取り決めが 必ず存在し,これを一般的にプロトコルと呼ぶ.
WWWはその設計上,遠隔に存在するコンピューターからファイルを取得することが必須であるため,そのためのプロトコルとして 用意されたのがHTTPである.ただしそのやり取りは前述の「レジでの会計」よりもずっとシンプルである. HTTPは基本的に「一問一答」のやり取りである. HTTPにおいては通信にかかわる二者をクライアントとサーバーと呼ぶが,HTTPはたいていの場合は, クライアントが「このファイルをください」という要求(リクエスト)をサーバーに伝え,サーバーがそれに応じて 要求されたファイルをもって応答(レスポンス)する,というやりとりで完結する(_).
このHTTPのやり取りはすべてテキストベースのやり取りである.つまり,HTTPのリクエストもレスポンスも 単純なテキストファイルとして構成可能である.そこで今回は,HTTPの仕組みを理解するため HTTPのやりとりを人間が手打ちで行うことを試みる.
このような図法をシーケンス図という ↩︎