メインコンテンツへスキップ

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 など
レスポンス ステータスコードで結果を通知