Web 開発を始めると必ず登場する HTTP通信。
本記事では、HTTPメソッドの基礎、GET と POST の違い、ステートレスという概念、そして Web エンジニアとして次に学ぶべき周辺技術まで一気に理解できる内容をまとめています。
🚀 1. HTTPとは?
HTTP(HyperText Transfer Protocol)は
ブラウザとサーバーがデータをやり取りするための通信ルール(プロトコル) です。
Web アプリ・REST API・モバイルアプリのほとんどが HTTP を使っています。
🔽 2. HTTPメソッドの基本
HTTPでは、サーバーに対して「何をしてほしいか」を メソッド で伝えます。
| メソッド | 内容 |
|---|---|
| GET | データを取得 |
| POST | データを作成・更新 |
| PUT | データを全更新 |
| PATCH | データを部分更新 |
| DELETE | データを削除 |
最も使用頻度の高い GET と POST の違い を次で説明します。
🔍 3. GETメソッドの特徴
GET は データを取得 するメソッドです。
✨ 特徴まとめ
- パラメータは URL に含まれる
GET /search?keyword=apple&page=1
- Body は空
- キャッシュが有効
- URLに露出するためログ等に残りやすい
- 送信できるデータ量はやや少なめ(URL長制限)
📎 GETリクエスト例
GET /path?param1=value¶m2=value HTTP/1.1
Host: example.com
📝 4. POSTメソッドの特徴
POSTは データの作成・更新 をサーバーに依頼するメソッドです。
✨ 特徴まとめ
- Body にパラメータを入れて送信する
- URLにデータが出ない
- キャッシュは基本無効
- 大量データの送信が可能
- APIでの書き込み処理で広く利用される
📎 POSTリクエスト例
POST /path HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
param1=value¶m2=value
🧠 5. HTTPの重要概念:ステートレス
HTTPは ステートレス(stateless) なプロトコルです。
📌 ステートレスとは?
サーバーはリクエスト間の状態を覚えない
つまり・・・
- 1回目のリクエスト内容 → 2回目のリクエストに引き継がれない
- 全ての通信が独立して扱われる
これは「Web を巨大にスケールさせるための設計思想」です。
📚 ステートフルとの比較
| プロトコル | 説明 |
|---|---|
| HTTP(ステートレス) | 各リクエストが独立。状態を保持しない。 |
| FTP / SSH(ステートフル) | 接続を維持しながら通信する。 |
🏁 6. GET と POST の違いまとめ
| 項目 | GET | POST |
|---|---|---|
| 用途 | データ取得 | データ作成・更新 |
| パラメータ送信 | URL | Body |
| URLに露出 | する | しない |
| キャッシュ | 有効 | 無効 |
| データ量制限 | あり | 少量〜中量が目安 |
| 主な用途 | 検索、一覧表示 | フォーム送信、API更新 |
7. HTTPの理解をさらに深めるために
HTTPを理解した次は、以下4つを学ぶと Web の仕組みが一気に繋がります。
🍪 7-1. Cookie / Session(ステートレスを補う技術)
HTTP がステートレスであるため、
ログイン状態の保持 や ショッピングカートの管理 を実現するには仕組みが必要です。
それが Cookie と Session。
🔸 Cookie とは?
- ブラウザに保存される小さなデータ
- サーバーがレスポンスに含めて設定する
- 次回リクエスト時にブラウザが自動送信する
用途例:
- ログイン状態の維持
- トラッキング
- ユーザー設定の保存(言語など)
🔸 Session とは?
- サーバー側にユーザー情報を保存する仕組み
- Cookie には Session ID だけ保存する
仕組みはこう:
- ユーザーがログイン
- サーバーは Session ID を発行
- ブラウザの Cookie に保存
- 以後、その Session ID を使いサーバーがユーザーを識別
→ ステートレスなHTTPでも状態を保てるようになる
🧩 7-2. REST API の設計
REST(Representational State Transfer)は、
HTTP を使ってシンプルで分かりやすい API を作るための設計思想 のこと。
REST の特徴:
- URL(リソース)と HTTP メソッドを組み合わせて操作を表現
- シンプルで統一されたインターフェース
- Web との相性が非常に良い
REST の具体例
| 操作 | HTTPメソッド | URL |
|---|---|---|
| ユーザー一覧取得 | GET | /users |
| 新規ユーザー作成 | POST | /users |
| ユーザー情報の更新 | PUT/PATCH | /users/:id |
| ユーザー削除 | DELETE | /users/:id |
→ Web API を設計する上で必須知識。
🚦 7-3. HTTPステータスコード(200, 404, 500 など)
HTTPレスポンスには、必ず ステータスコード が含まれます。
超重要なので最低これだけ覚えてください:
| コード | 意味 | 例 |
|---|---|---|
| 200 OK | 成功 | 通常の成功レスポンス |
| 201 Created | 作成成功 | POST の成功 |
| 400 Bad Request | リクエストが不正 | パラメータ不足 |
| 401 Unauthorized | 認証エラー | ログインが必要 |
| 403 Forbidden | 権限エラー | 権限がない |
| 404 Not Found | 見つからない | URLが違う |
| 500 Internal Server Error | サーバーエラー | バグ・障害 |
🔐 7-4. HTTPS と セキュリティ
HTTPS は HTTP + SSL/TLS の仕組みであり、
通信内容を暗号化して安全にするプロトコル
HTTP との違い:
| 項目 | HTTP | HTTPS |
|---|---|---|
| 暗号化 | なし | あり |
| セキュリティ | 弱い | 強い |
| URL | http:// | https:// |
HTTPS が解決する問題
- パスワードが盗聴される
- Cookie が抜かれる
- 中間者攻撃で改ざんされる
これらを すべて防ぐ のが HTTPS です。
現在の Web では 必須レベル の技術です。
🎯 8. まとめ
- HTTP は Web 通信の基礎プロトコル
- GET は「取得」、POST は「作成・更新」
- HTTP は ステートレス
- 状態保持は Cookie / Session を使う
- REST API は HTTP の標準設計手法
- ステータスコードは API開発に必須
- HTTPS は通信を安全に暗号化する