🚀 はじめに

この記事でわかること

  • HTTPとは何か(Webが会話するためのルール)
  • リクエストとレスポンスの流れ(誰が何を送り、何が返ってくるのか)
  • ステータスコード(200/404/500…の意味)とヘッダー(便利な“付箋”の使いどころ)
  • HTTPS(暗号化)やHTTP/1.1/2/3の違いの全体像

こんな人向け

  • 中学生〜大人まで、IT知識がほとんどない初心者
  • HTTPってよく聞くけど、結局なに?」をカンタンな言葉と図解で理解したい人

初心者でも安心な理由

  • 身近なたとえと最小限の用語で、怖くない言葉づかい
  • このページだけで完結(最後に公式ドキュメントや参考リンク付き)
  • そのまま復習用のチートシートとしても使えます

ポイント:HTTPは「ブラウザ(あなた)」と「サーバー(お店の人)」が決まった言い方でやり取りするためのルール。
「注文票(リクエスト)」を出すと、「伝票+料理(レスポンス)」が戻ってきます。


✅ 概要解説

HTTPとは何か

HyperText Transfer Protocol の略。
WebページやAPIの“会話のしかた” を決めるプロトコル(約束事)です。

HTTPの流れ(ブラウザ→サーバー→ブラウザ)
  • リクエスト(Request):ブラウザやアプリが 「これください!」 とサーバーに送る注文
  • レスポンス(Response):サーバーが 「はいどうぞ!」 と返す回答(HTMLや画像、JSONなど)
  • ステータスコード:注文の結果を示す3ケタの番号(成功/見つからない/エラー など)
  • ヘッダー:リクエストやレスポンスに付くメモ(付箋)。言語や形式、キャッシュ指示など

何のためにあるのか

  • 決まった言い方があると、お互いに勘違いなくやり取りできる
  • 世界中のブラウザとサーバーが、同じルールで話せる(互換性が高い)
  • 画像、動画、APIのデータ(JSON など)も同じ仕組みでやり取りできる

HTTPがないとどうなるのか

  • ブラウザとサーバーが “好き勝手な言い方” で話してしまい、通じない
  • 国や会社ごとにバラバラで、Webが今のように広がらなかった可能性が高い

どんな場面で使えるのか

  • 普通のWeb閲覧(ニュースサイト、ECサイト、SNS)
  • Web API(アプリどうしのデータ交換:天気API、地図API、決済API など)
  • ファイル配信(画像、PDF、動画のストリーミングなど)

💡 HTTPSHTTP+暗号化(TLS)。内容の盗み見や改ざんを防ぐため、今はほぼHTTPS一択です(URLの「https://」や🔒マーク)。


💡 小話・豆知識・逸話

  1. 200/404/500 ってなに?
    ステータスコードの一例。200は「成功」、404は「見つからない」、500は「サーバーで問題」。
    先頭の数字でざっくり分類:

    • 1xx 情報、2xx 成功、3xx 追加の操作(リダイレクト)、4xx クライアント側の問題、5xx サーバー側の問題。
  2. 「404はCERNの404号室に由来」という噂
    → ネットで広まった
    都市伝説
    で、公式な根拠はありません。ステータスコードはIETFの標準文書(RFC) で定義されています。

  3. なぜHTTP/2やHTTP/3があるの?

    • HTTP/1.1:昔からある基本形。1本の線で順番にやりとりするイメージ。
    • HTTP/2:1本の線でも同時に複数のやり取りをできるよう工夫(高速化)。
    • HTTP/3UDPベースの新しい仕組みで、通信の張り直しに強く遅延に強い
  4. 451 Unavailable For Legal Reasons
    「法的理由で公開できません」という意味。名前は書籍『華氏451度』を連想させる番号で、覚えやすいコードの一つ。

ℹ️ 覚え方
2OK(にっこり)3回れ右(リダイレクト)4こちらの手違い(URL/認可など)5お店側の事情」。


🔎 HTTPの中身をのぞいてみよう(例)

1) リクエストの例(GET)

GET /index.html HTTP/1.1
Host: example.com
User-Agent: MyBrowser/1.0
Accept: text/html
  • 最初の行:方法(GET)・パス(/index.html)・バージョン(HTTP/1.1)
  • ヘッダーHostどのサイト宛かUser-Agent名乗りAccept欲しい形式

2) レスポンスの例(200 OK)

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 1256
Cache-Control: max-age=3600

<!doctype html>
<html>...(省略)...</html>
  • 最初の行:バージョン(HTTP/1.1)・ステータスコード(200)・説明(OK)
  • ヘッダーContent-Type中身の種類Cache-Control保存してよいかの指示
  • 空行のあと本文(HTMLやJSON、画像)

🧪 試してみる(安心な範囲)

  • ブラウザの開発者ツール → Networkで、ページを再読み込みして中身を観察
  • コマンドが使える人は curl -I https://example.com(ヘッダーだけ)がお手軽

🧭 ステータスコード早見表(よく使うもの)

分類代表コード意味(初心者向けの言い換え)いつ見る?
2xx 成功200 OK成功。問題なし通常表示
201 Created作成に成功フォーム送信で新規作成
3xx リダイレクト301 Moved Permanently恒久的なお引っ越しURL変更
302 Found一時的な回り道仮リダイレクト
304 Not Modified変わってないからキャッシュ使ってOK速くなる
4xx クライアント側400 Bad Request送り方が変/足りない形式ミス
401 Unauthorized認証が必要(ログインしてない)要ログイン
403 Forbidden許可されていない権限なし
404 Not Foundそのページはないリンク切れ
5xx サーバー側500 Internal Server Errorサーバーの中でエラー不具合
502 Bad Gateway中継で失敗逆プロキシ経由
503 Service Unavailableいま手が離せない(混雑/メンテ)混雑時

💡 コツ4xx は自分側(URL/権限/送信内容)5xx はお店側(サーバーの都合)


🧩 よく使うHTTPヘッダー(最初の7選)

  • Host:宛先サイト名(HTTP/1.1 では必須)
  • Content-Type:本文の種類(例:text/htmlapplication/jsonimage/png
  • Content-Length:本文のバイト数(受け取り側が読み切りやすい)
  • User-Agent(Req):誰から来たかの名乗り(ブラウザ名など)
  • Accept / Accept-Language(Req):欲しい形式・言語の希望
  • Authorization(Req):認証情報(例:Bearer <トークン>
  • Cache-Control(Req/Res):キャッシュの方針(no-store/max-age=3600 など)
  • Set-Cookie / Cookie:ログイン状態や設定をブラウザに保存・再送
  • Location(Res):どこへ移動すべきか(リダイレクト時に使用)
  • Content-Encoding(Res):圧縮形式(gzip/br など)
  • Access-Control-Allow-Origin(Res):CORSの許可(API公開時に重要)

⚠️ セキュリティ注意

  • AuthorizationCookie第三者に見られないようHTTPSを必ず使う。
  • 不要なヘッダーは付けすぎない(情報露出の最小化)。

🌐 HTTP/1.1・HTTP/2・HTTP/3 の違い(ざっくり)

  • HTTP/1.1:テキストベース。1つの線で順番待ちが発生しやすい
  • HTTP/21つの線で並列(多重化) できる。ヘッダー圧縮で高速化
  • HTTP/3UDPを利用し、接続やり直しに強い。モバイル回線などで有利

👀 意識するポイント
サイトを見る側はほぼ意識不要。配信する側はCDNやサーバーが対応していれば恩恵を受けられます。
どのバージョンでも、基本の“リクエスト/レスポンス/ヘッダー/ステータス”の考え方は共通です。


📚 参考リンク


🛠️ 関連テーマ・次に理解すると良いこと


🎯 まとめ

  • HTTPはWebの“会話のルール”リクエスト(注文)とレスポンス(回答)で成り立つ。
  • ステータスコードは結果の番号表記(2xx成功 / 3xx回り道 / 4xxこちらの問題 / 5xxお店の問題)。
  • ヘッダーは指示や説明の付箋Content-TypeCache-ControlSet-Cookie などが重要。
  • HTTPSはHTTPに暗号化を足したもの。安全のため基本はHTTPSを使う
  • HTTP/2/3は高速化の仕組みだけど、基本の考え方は共通
  • 次の一歩は、URL/メソッド/キャッシュ/CORS/HTTPSを順に押さえると、Webの見通しが一気によくなる