HTTPとは
Webページが表示される仕組みとHTTPの役割を理解しよう
このガイドについて
このガイドでは、Web API開発に必要なHTTPの知識を学びます。
HTTPはネットワーク通信の広い分野ですが、ここではAPI開発で実際に使う部分に絞って解説します。
- との構造
- (GET, POST, PUT, DELETE)
- (200, 404, 500など)
これらを理解すれば、APIを作る際に「何をしているのか」「何をすべきか」が分かるようになります。
Webページが表示されるまで
ブラウザでURLを入力してWebページが表示されるまで、裏側では何が起きているのでしょうか。
往路
[ あなたのPC ] ──▶【ページください】リクエスト ──▶ [ Webサーバー ]
復路
[ あなたのPC ] ◀──【ページのデータ】レスポンス ◀── [ Webサーバー ]
- ブラウザがサーバーに「このページをください」とを送る
- サーバーがを受け取り、該当するデータを探す
- サーバーがブラウザに「はい、どうぞ」とを返す
- ブラウザがを受け取り、画面に表示する
この「を送って、を受け取る」というやり取りのルールがです。
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サーバーのURL | APIサーバーの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の仕組みを使っている