0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

イメージで理解するHTTPリクエスト

Posted at

はじめに

HTTPリクエストと聞いて、「言葉は聞いたことがあってもいまいちよく分からない。」といった状況の人がいると思います。そのような方向けに今回はHTTPリクエストついてイメージで理解できるように解説します。
※かっこ内は、イメージしやすくするための翻訳みたいなものです。

HTTPとは何か?

HTTPとは、HyperText Transfer Protocol の略で、WebブラウザとWebサーバーの間で情報をやり取りするためのプロトコル(データの送受信の約束事)のことです。このHTTPがあることで、インターネット上の情報のやり取りが可能になります。HTTPには、クライアント(ブラウザ)が情報やリソースを要求するリクエストと、サーバーがクライアント(ブラウザ)のリクエストに応じて返すレスポンスがあります。

HTTPリクエスト

HTTPリクエストは、リクエストライン、ヘッダー、ボディの3つに分けられます。

リクエストライン

リクエストラインは、宛先に目的を伝える「手紙の宛名と件名」のようなものです。具体的には、メソッド(データをどのように扱いたいか)、ファイル名、HTTPのバージョンが記載されてます。

GET /index.html HTTP/1.1

例えば、上記のリクエストラインでは、HTTP/1.1(というバージョンを使って、)index.html(というファイルを)GET(取得したい)という意味です。

ヘッダー

ヘッダーは、コンテンツタイプ(受け入れることができるデータの種類)の指定やリクエスト先のホスト名(接続先の名前)の指定、クライアントのソフトウェアの情報などが含まれます。

Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

例えば上記のヘッダーでは、

  • www.example.comという宛先に接続します
  • クライアントの情報は、Mozilla/5.0です
  • HTML形式のコンテンツを受け入れます
  • 英語(米国)を好み、それに次いで他の英語も受け入れることができます
  • gzipやdeflate、br形式で圧縮されたデータを受け入れます

というような意味を持ちます。

ボディ

ボディは、リクエストの本文のようなようなものです。ウェブサイトのフォームに入力されたデータをサーバに送信したいときなどに使われます。GETメソッド(Webサイトを取得したい目的)では、ボディは必要ないので空です。

POST /posts HTTP/1.1
Host: api.example.com
Content-Type: application/json
Content-Length: 85

{
  "title": "花火大会",
  "content": "浴衣をきて花火大会に行った。かき氷がおいしかった。",
  "author": "太郎"
}

上記は、POSTメソッド(データをサーバーに送信するという目的)を使って、ブログの記事を投稿する際のリクエストライン、ヘッダー、ボディです。ヘッダーの部分で、Content-Type: application/jsonというのがありますね。これは、

  • コンテンツタイプ(送信するデータの種類)は、JSON形式(データを名前と値のペアで表現する形式)です

という意味です。そのJSON形式というのがボディである{}で、このHTTPリクエストを送信することで、ブログに投稿をアップすることができます。

まとめ

HTTPリクエストは、WebブラウザとWebサーバーの間で情報をやり取りするための基本的な仕組みです。HTTPリクエストは以下の3つの部分で構成されています

リクエストライン

これは宛先に目的を伝える部分で、メソッド(データをどう扱いたいか)、ファイル名、HTTPのバージョンが含まれます。

ヘッダー

ヘッダーには、コンテンツタイプ、リクエスト先のホスト名、クライアントのソフトウェア情報などが含まれます。

ボディ

ボディはリクエストの本文で、フォームに入力されたデータをサーバーに送信する場合などに使用されます。GETメソッドでは通常空です。

HTTPリクエストを理解することで、Webブラウザがどのようにしてサーバーから情報を取得しているかを知ることができます。イメージしながら理解していきましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?