HTTPとは
HTTP は、WebブラウザとWebサーバーの間でデータをやり取りするための通信プロトコルです。
通信は、クライアントがリクエストを送り、サーバーがレスポンスを返す
リクエスト・レスポンスモデルで進みます。
リクエストの見方
GET / HTTP/1.1
Host: forse.tokyo
User-Agent: curl/8.7.1
Accept: */*
- リクエストライン: メソッド、URI、HTTPバージョン
- ヘッダ: Host、User-Agent、Accept などの補足情報
- ボディ: GETでは通常なし
レスポンスの見方
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=UTF-8
Content-Length: 8558
- ステータスライン: HTTPバージョン、ステータスコード、説明
- レスポンスヘッダ: サーバー情報やデータ種別を表す
- ボディ: 実際のHTML本文など
通信フロー
- TCPで3ウェイハンドシェイクを行う
- HTTPリクエストを送る
- サーバーが処理してHTTPレスポンスを返す
- 必要に応じて接続を終了、または Keep-Alive で再利用する
主なHTTPメソッド
- GET: データ取得
- POST: データ送信や新規作成
- PUT: リソース全体の置き換え
- PATCH: 一部変更
- DELETE: 削除
よく使うステータスコード
200 OK: 正常に処理された
201 Created: 新しいリソースを作成した
301 Moved Permanently: 恒久的に移動した
302 Found: 一時的に移動した
400 Bad Request: リクエストが不正
401 Unauthorized: 認証が必要
403 Forbidden: アクセス拒否
404 Not Found: 見つからない
500 Internal Server Error: サーバー内部エラー
503 Service Unavailable: 一時的に利用不可
補足
User-Agent を見ると、どのOSやブラウザからアクセスしているかが分かります。
アクセスログやエラーログを確認することで、アクセス元、要求URL、メソッド、エラー発生状況を追跡できます。