HTTP(Hyper Text Transfer Protocol)
🌐 HTTPとは?
HTTP(HyperText Transfer Protocol)は、Webブラウザとサーバが情報をやり取りするための通信ルールです。現在のインターネットにおいて、Webページの閲覧やAPI通信など、広範に使用されています。
HTTPは「ステートレス(Stateless)」なプロトコルです。一度の通信で接続は終了し、状態は保存されません。このため、セッション管理にはクッキーやトークンなどが使われます。
🔁 HTTPのリクエストとレスポンス
リクエスト(Request)
クライアント(例:ブラウザ)がサーバに「こういう情報がほしい」と送るメッセージです。
-
構成要素:
-
メソッド(GET, POST など)
-
パス(例:
/index.html
) -
ヘッダー(例:User-Agent)
-
ボディ(POSTのときなど)
-
レスポンス(Response)
サーバがクライアントに返す応答です。
-
構成要素:
-
ステータスコード(例:200 OK)
-
ヘッダー(例:Content-Type)
-
ボディ(HTML, JSONなど)
-
📥 主なHTTPメソッド
メソッド | 用途 |
---|---|
GET | データの取得(URLに情報を含む) |
POST | データの送信(主にフォーム送信など) |
PUT | データの置換(リソース全体を上書き) |
PATCH | データの一部更新 |
DELETE | データの削除 |
HEAD | ヘッダーだけ取得(本文なし) |
OPTIONS | 利用可能なメソッドを問い合わせる |
実際にはGETとPOSTがほとんどの用途で使われており、PUTやDELETEなどはRESTful APIでよく見かけます。
🚦 ステータスコード(HTTPレスポンスコード)
HTTPレスポンスは数値で結果を表します。以下は代表的なものです。
✅ 1xx: 情報(Informational)
-
100 Continue: リクエスト継続してOK
🟢 2xx: 成功(Success)
-
200 OK: 正常に成功
-
201 Created: リソースが作成された(POSTなど)
🔄 3xx: リダイレクト(Redirection)
-
301 Moved Permanently: 恒久的な移動
-
302 Found: 一時的な移動
-
304 Not Modified: キャッシュを使ってOK
🟡 4xx: クライアントエラー(Client Error)
-
400 Bad Request: リクエストが不正
-
401 Unauthorized: 認証が必要
-
403 Forbidden: アクセス禁止
-
404 Not Found: ページが見つからない
-
405 Method Not Allowed: 許可されていないメソッド
🔴 5xx: サーバエラー(Server Error)
-
500 Internal Server Error: サーバ側の一般的なエラー
-
502 Bad Gateway: ゲートウェイが無効な応答を受け取った
-
503 Service Unavailable: サーバが一時的に利用不可
【警告】
5xx系のエラーが頻発する場合、サーバ構成やアプリケーションに重大な問題がある可能性があります。
🧭 HTTPとHTTPSの違い
-
HTTP: 暗号化されない(平文通信)
-
HTTPS: TLSで暗号化され、安全性が高い
現在のWebはHTTPSが標準になっています。HTTPはセキュリティ面で危険なため、基本的には使用を避けるべきです。
📚 まとめ
項目 | 説明 |
---|---|
プロトコル | HTTP / HTTPS(暗号化あり) |
特徴 | ステートレス、クライアント-サーバ型 |
メソッド | GET / POST / PUT / DELETE など |
レスポンス | ステータスコードで結果を通知 |