HTTPリクエスト
HTTPでクライアントがサーバに送る要求のメッセージ。HTTP/1.1ではリクエスト行、ヘッダー、空行の順に並び、必要に応じてメッセージボディが続く。
イマシルちゃんの解説
Webページを開いたり、フォームの内容を送ったりするとき、ブラウザはサーバへ要求を伝えるよ。
この要求のメッセージがHTTPリクエストなんだ。
HTTP/1.1では、最初のリクエスト行に求める処理や対象、HTTPのバージョンを書くの。
続くヘッダーでは、接続先の名前や送るデータの形式などを伝えるよ。
ヘッダーの終わりは空行で区切るんだ。
投稿する文章などを送る場合は、その後のメッセージボディに入れるよ。
こうして要求の種類と補足情報、送る内容を分けることで、サーバがどのように処理すればよいか読み取れるの。
この解説はわかりやすかったですか?
より深い解説
構造
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以降では、メッセージをテキストのまま送らず、バイナリのフレームに分けて送る。ただし、メソッド、ヘッダー、ボディという論理的な構成は同じである。
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ