HTTPリクエストとは?
⇨pcから「HTMLください」や「画像ください」という依頼をサーバー側にするもの。 この記事では実際どのような依頼(〇〇ください)がwebサーバーに送られているのか中身を見ていこうと思います。
HTTPリクエストの中身
3つの要素で構成されている。(HTTPリクエスト、HTTPヘッダー、HTTPボディ)
HTTPリクエスト
⇨メールでいう宛先の部分で「どこに何をどんなルールでリクエスト(依頼)」するかを指定します.
実際↓のような感じになります。
POST /search.html HTTP/1.1\r\n
具体的にここで含めることは.
「メソッド(POST)」. ⇨宛先に対して何をするか
「URL(宛先)」. ⇨どこ
「HTTPバージョン(どんなルールか)」⇨どんなルールで通信するか.
まとめると「/search.htmlに HTTPバージョンの1.1というルールでPOSTする」
メソッドの種類
メソッド | 説明 |
---|---|
GET | リソース(データ)の取得を要求します。 |
POST | 新しいリソースの作成を要求します。 |
PUT | リソースの更新を要求します。 |
DELETE | リソースの削除を要求します。 |
PATCH | リソースの一部の更新を要求します。 |
HEAD | リソースのヘッダー情報を要求します。 |
OPTIONS | サポートされるメソッドのオプションを要求します。 |
POSTは「新しいデータの作成を要求する」という意味なのでユーザー登録の際を送られたユーザー情報を登録するときなどに使われる。
HTTPヘッダー
⇨「お願いごとやお願い元に関するあれこれ」が書かれている.
フィールド名=項目.
内容=中身.
【フィールド名】:【内容】の書式で記載されている↓が実際のヘッダー
Host: wa3.i-3-i.info\r\n Connection: keep-alive\r\n Content-Length: 38\r\n Cache-Control: max-age=0\r\n Origin: http://wa3.i-3-i.info\r\n Upgrade-Insecure-Requests: 1\r\n User-Agent: うんちゃら\r\n Content-Type: application/x-www-form-urlencoded\r\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n Referer: http://wa3.i-3-i.info/index.html\r\n Accept-Encoding: gzip, deflate\r\n Accept-Language: ja,en-US;q=0.8,en;q=0.6\r\n
有名なフィールドにContent-TypeとUser-Agentがある.
Content-Typeでは「クライアント側がこういうファイル形式でデータを送信しているからレスポンスもこのファイル形式で送ってねみたいなことをサーバーに知らせてる」.
User-agentでは「どんなソフトや機械を使ってインターネットをやっていますよ~」という情報を伝えている.例えばiphoneを使ってリクエスト送ってるよとか.
cookie情報もヘッダーに含まれる
ボディ
→補足のメモ書き情報をここに記載する.
何も記載がない時もあれば記載がある時もある。
q=test&submitSearch=%E6%A4%9C%E7%B4%A2
例えばPOST通信の場合は、受け渡されるパラメータの内容が、ここに記述される.
GET通信のように補足の必要がない場合は、特に何も書かれません。
まとめ
- HTTPリクエストはどこに何をどうするのかが詳しく記載されている。