TL;DR

クライアントがサーバに送る HTTP メッセージである。HTTP メソッド、対象のリソース、HTTP のバージョンを書いたリクエストラインで始まり、ヘッダと任意のボディが続く。

仕組み

RFC 9112 の定義では、HTTP/1.1 のメッセージはスタートラインと CRLF で始まり、0 個以上のヘッダの行、ヘッダの終わりを示す空行、任意のメッセージボディが続く。リクエストでは、スタートラインがリクエストラインになる。

HTTP-message = start-line CRLF *( field-line CRLF ) CRLF [ message-body ]
request-line = method SP request-target SP HTTP-version

リクエストラインは、メソッド、空白 1 文字、リクエストの対象(request-target)、空白 1 文字、プロトコルのバージョンの順に並ぶ。ヘッダの各行は、大文字と小文字を区別しないフィールド名、:、値の形で書く。

例

RFC 9112 には、次のリクエストの例がある。

GET /where?q=now HTTP/1.1
Host: www.example.org

関連

出典