HTTPは、Webで「何をください」と依頼し、「これです」と返してもらうための会話ルールです。ブラウザでURLを開くときも、画像やCSS、JavaScriptを読み込むときも、フォームを送信するときも、裏ではこのルールに沿ったやり取りが行われています。
お店のカウンターで注文票を出す流れを思い浮かべると分かりやすいかもしれません。お客さんが注文票を出す(リクエスト)。店員さんが品物や案内を返す(レスポンス)。注文票の書き方が決まっているから、初めて入るお店でも迷わず注文できます。ブラウザが世界中の知らないサーバーからページを受け取れるのも、この書式が共通だからです。
注文票には書き方の決まりがある
注文票には「見せてほしい」(GET)、「受け取ってほしい」(POST)のような依頼の種類を書く欄があり、返事には成否を表す3桁のステータスコードが付きます。同じ内容を何度も取りに行かないよう、キャッシュしてよいかどうかを返事に書き添えることもできます。
作る側がこの決まりを守っていれば、どのブラウザからでも、どのアプリからでも同じように話が通じます。
注文票はガラス越しに運ばれる
HTTPは会話の手順を決めたルールで、中身を隠す仕組みは持っていません。パスワードや個人情報をHTTPのまま送ると、途中の経路で読まれるおそれがあります。
そこで使うのが、TLSで通信を暗号化した HTTPS です。秘密情報を扱うページはもちろん、今は公開サイト全体をHTTPSにするのが標準になっています。2つの違いはHTTPとHTTPSの違いで詳しく比べています。