🚀 はじめに
この記事でわかること
- HTTPとは何か(Webが会話するためのルール)
- リクエストとレスポンスの流れ(誰が何を送り、何が返ってくるのか)
- ステータスコード(200/404/500…の意味)とヘッダー(便利な“付箋”の使いどころ)
- HTTPS(暗号化)やHTTP/1.1/2/3の違いの全体像
こんな人向け
- 中学生〜大人まで、IT知識がほとんどない初心者
- 「HTTPってよく聞くけど、結局なに?」をカンタンな言葉と図解で理解したい人
初心者でも安心な理由
- 身近なたとえと最小限の用語で、怖くない言葉づかい
- このページだけで完結(最後に公式ドキュメントや参考リンク付き)
- そのまま復習用のチートシートとしても使えます
✅ ポイント:HTTPは「ブラウザ(あなた)」と「サーバー(お店の人)」が決まった言い方でやり取りするためのルール。
「注文票(リクエスト)」を出すと、「伝票+料理(レスポンス)」が戻ってきます。
✅ 概要解説
HTTPとは何か
HyperText Transfer Protocol の略。
WebページやAPIの“会話のしかた” を決めるプロトコル(約束事)です。

- リクエスト(Request):ブラウザやアプリが 「これください!」 とサーバーに送る注文
- レスポンス(Response):サーバーが 「はいどうぞ!」 と返す回答(HTMLや画像、JSONなど)
- ステータスコード:注文の結果を示す3ケタの番号(成功/見つからない/エラー など)
- ヘッダー:リクエストやレスポンスに付くメモ(付箋)。言語や形式、キャッシュ指示など
何のためにあるのか
- 決まった言い方があると、お互いに勘違いなくやり取りできる
- 世界中のブラウザとサーバーが、同じルールで話せる(互換性が高い)
- 画像、動画、APIのデータ(JSON など)も同じ仕組みでやり取りできる
HTTPがないとどうなるのか
- ブラウザとサーバーが “好き勝手な言い方” で話してしまい、通じない
- 国や会社ごとにバラバラで、Webが今のように広がらなかった可能性が高い
どんな場面で使えるのか
- 普通のWeb閲覧(ニュースサイト、ECサイト、SNS)
- Web API(アプリどうしのデータ交換:天気API、地図API、決済API など)
- ファイル配信(画像、PDF、動画のストリーミングなど)
💡 HTTPS は HTTP+暗号化(TLS)。内容の盗み見や改ざんを防ぐため、今はほぼHTTPS一択です(URLの「https://」や🔒マーク)。
💡 小話・豆知識・逸話
200/404/500 ってなに?
→ ステータスコードの一例。200は「成功」、404は「見つからない」、500は「サーバーで問題」。
先頭の数字でざっくり分類:- 1xx 情報、2xx 成功、3xx 追加の操作(リダイレクト)、4xx クライアント側の問題、5xx サーバー側の問題。
「404はCERNの404号室に由来」という噂
→ ネットで広まった都市伝説で、公式な根拠はありません。ステータスコードはIETFの標準文書(RFC) で定義されています。なぜHTTP/2やHTTP/3があるの?
- HTTP/1.1:昔からある基本形。1本の線で順番にやりとりするイメージ。
- HTTP/2:1本の線でも同時に複数のやり取りをできるよう工夫(高速化)。
- HTTP/3:UDPベースの新しい仕組みで、通信の張り直しに強く遅延に強い。
451 Unavailable For Legal Reasons
「法的理由で公開できません」という意味。名前は書籍『華氏451度』を連想させる番号で、覚えやすいコードの一つ。
ℹ️ 覚え方:
「2はOK(にっこり)、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/html、application/json、image/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公開時に重要)
⚠️ セキュリティ注意:
AuthorizationやCookieは第三者に見られないよう、HTTPSを必ず使う。- 不要なヘッダーは付けすぎない(情報露出の最小化)。
🌐 HTTP/1.1・HTTP/2・HTTP/3 の違い(ざっくり)
- HTTP/1.1:テキストベース。1つの線で順番待ちが発生しやすい
- HTTP/2:1つの線で並列(多重化) できる。ヘッダー圧縮で高速化
- HTTP/3:UDPを利用し、接続やり直しに強い。モバイル回線などで有利
👀 意識するポイント:
サイトを見る側はほぼ意識不要。配信する側はCDNやサーバーが対応していれば恩恵を受けられます。
どのバージョンでも、基本の“リクエスト/レスポンス/ヘッダー/ステータス”の考え方は共通です。
📚 参考リンク
- MDN Web Docs(日本語)
- IETF(標準仕様・RFC)
- HTTP Semantics(RFC 9110): https://www.rfc-editor.org/rfc/rfc9110
- HTTP/1.1(RFC 9112): https://www.rfc-editor.org/rfc/rfc9112
- HTTP/3(RFC 9114): https://www.rfc-editor.org/rfc/rfc9114
- Wikipedia
- Hypertext Transfer Protocol: https://ja.wikipedia.org/wiki/Hypertext_Transfer_Protocol
🛠️ 関連テーマ・次に理解すると良いこと
- URLの構造(スキーム・ホスト・パス・クエリ・フラグメント)

【初心者向け】URLの構造をやさしく解説|スキーム・ホスト・パス・クエリ・フラグメント入門
- HTTPメソッド(GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS)と意味の違い

【初心者向け】HTTPメソッド(GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS)をやさしく解説|違い・使い分け・具体例
- キャッシュ戦略(
Cache-Control/ETag/Last-Modified/304) - Cookie & セッション / SameSite / Secure / HttpOnly
- CORS(アクセス制御) の基本とプリフライト
- HTTPS/TLS(証明書、暗号化、HSTS)
- APIの設計入門(REST/JSON、エラーハンドリング、認証)
🎯 まとめ
- HTTPはWebの“会話のルール”。リクエスト(注文)とレスポンス(回答)で成り立つ。
- ステータスコードは結果の番号表記(2xx成功 / 3xx回り道 / 4xxこちらの問題 / 5xxお店の問題)。
- ヘッダーは指示や説明の付箋。
Content-Type、Cache-Control、Set-Cookieなどが重要。 - HTTPSはHTTPに暗号化を足したもの。安全のため基本はHTTPSを使う。
- HTTP/2/3は高速化の仕組みだけど、基本の考え方は共通。
- 次の一歩は、URL/メソッド/キャッシュ/CORS/HTTPSを順に押さえると、Webの見通しが一気によくなる。
