HTTPリクエスト

読み:えいちてぃーてぃーぴーりくえすと / 英語表記:HTTP request message

HTTPでクライアントがサーバに送る要求のメッセージ。リクエスト行、ヘッダー、空行、メッセージボディの順に並ぶ。

イマシルちゃんの解説

ブラウザがサーバに送る「お願いの手紙」には、決まった書き方があるんだ。

1行目に「何をしてほしいか」、続けて「補足の情報」、1行あけて「一緒に送る中身」。
手紙の宛名、追伸、同封物みたいな感じで、順番がきっちり決まってるんだよ!

より深い解説

構造

HTTP/1.1のリクエストメッセージは、次の順で並ぶテキストである。

部分内容
リクエスト行メソッド、リクエスト対象(パスなど)、HTTPのバージョン
ヘッダーHost、User-Agent、Content-Typeなどの付加情報。1行に1つ
空行ヘッダーの終わりを示す(改行だけの行)
メッセージボディサーバに送るデータ本体。ない場合もある

具体例

GETメソッドで検索キーワードを送る場合:

GET /search?q=network HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0

POSTメソッドでフォームの内容を送る場合:

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

user=glatch&password=secret

フォームに入力したデータは、GETメソッドではリクエスト行のURLの末尾(クエリ文字列)に、POSTメソッドではメッセージボディに入る。

押さえておきたいヘッダー

ヘッダー内容
Host接続先のホスト名。HTTP/1.1では必須。1台のサーバで複数のサイトを動かす(バーチャルホスト)ために使われる
Content-Typeボディのデータ形式
Content-Lengthボディの長さ(バイト数)
Cookieサーバから受け取ったCookieを送り返す
Refererどのページのリンクから来たか
Authorization認証情報

レスポンスメッセージとの違い

サーバが返すレスポンスメッセージも同じ形だが、1行目がリクエスト行ではなくステータス行(バージョン、ステータスコード、理由句。例:HTTP/1.1 200 OK)になる。

HTTP/2以降では、メッセージをテキストのまま送らず、バイナリのフレームに分けて送る。ただし、メソッド、ヘッダー、ボディという論理的な構成は同じである。

実際の試験ではここに出る!

この用語が出てくる記事

↑