tanaka101

HTTPとは

Webページが表示される仕組みとHTTPの役割を理解しよう

このガイドについて

このガイドでは、Web API開発に必要なHTTPの知識を学びます。

HTTPはネットワーク通信の広い分野ですが、ここではAPI開発で実際に使う部分に絞って解説します。

  • の構造
  • (GET, POST, PUT, DELETE)
  • (200, 404, 500など)

これらを理解すれば、APIを作る際に「何をしているのか」「何をすべきか」が分かるようになります。

Webページが表示されるまで

ブラウザでURLを入力してWebページが表示されるまで、裏側では何が起きているのでしょうか。

往路
[ あなたのPC ]  ──▶【ページください】リクエスト ──▶  [ Webサーバー ]

復路
[ あなたのPC ]  ◀──【ページのデータ】レスポンス ◀──  [ Webサーバー ]
  1. ブラウザがサーバーに「このページをください」とを送る
  2. サーバーがを受け取り、該当するデータを探す
  3. サーバーがブラウザに「はい、どうぞ」とを返す
  4. ブラウザがを受け取り、画面に表示する

この「を送って、を受け取る」というやり取りのルールがです。

HTTPとは

(HyperText Transfer Protocol)は、WebブラウザとWebサーバーがデータをやり取りするための 通信ルール(プロトコル) です。

用語意味
HyperTextリンクで繋がったテキスト(Webページのこと)
Transfer転送する
Protocol通信のルール・約束事

「Webページを転送するためのルール」という意味ですが、現在ではHTML以外にも画像、動画、JSONデータなど、あらゆるデータのやり取りに使われています。

APIもHTTPを使っている

Web APIも、HTTPを使ってデータをやり取りしています。

往路
[ フロントエンド(天気が知りたい) ]  ──▶ 【天気教えて】HTTPリクエスト ──▶  [ APIサーバー(天気を取得する処理) ]

復路
[ フロントエンド(天気が分かる) ]  ◀── 【天気情報を付与した】HTTPレスポンス   ◀──  [ APIサーバー ]

ブラウザでWebページを見るときと、APIでデータを取得するときは、どちらも同じHTTPという仕組みを使っています。違いは「返ってくるデータの形式」です。

Webページ
WebサーバーのURLAPIサーバーのURL
HTML(ページの構造)JSON(データ)
表示方法ブラウザがHTMLを解釈して表示プログラムがJSONを処理して表示

つまり、HTTPを理解すれば、API開発の基礎が分かるということです。

通信の階層について

HTTPは、ネットワーク通信の中で「一番上の層」で動いています。

実際の通信では、HTTPの下に複数の層があり、それぞれが役割を分担してデータを届けています。

[ HTTP ]      ← 「何を送るか」を決める(今ここを学んでいる)
    ↓
[ TCP ]       ← データを確実に届ける
    ↓
[ IP ]        ← どこに届けるかを決める
    ↓
[ 物理層 ]    ← 電気信号やWi-Fiで実際に送る

この階層構造はOSI参照モデルTCP/IPモデルと呼ばれます。 まずはHTTPの層だけ理解していれば大丈夫です。

下の層は「HTTPが動くために必要な土台」くらいの認識で問題ありません。

HTTPSについて

普段ブラウザで見るURLは https:// で始まっていることが多いと思います。

HTTPS(HTTP Secure)は、HTTPの通信を暗号化したものです。

[ HTTP ]
    ↓
[ TLS ]  ← ここで暗号化・復号が行われる
    ↓
[ TCP ]

HTTPとHTTPSの違いは「通信が暗号化されているかどうか」だけです。 の構造、など、このガイドで学ぶ内容はHTTPSでも同じです。

難しいと感じる方は、「HTTPにsが付くと安全に通信できる」程度の認識で問題ありません。

セクションまとめ

  • HTTPはブラウザとサーバーがデータをやり取りするルール
  • HTTPではを送り、を受け取るという流れで通信する
  • Web APIも同じHTTPの仕組みを使っている