HTTPリクエスト
HTTP Request
概要(サマリー)
HTTPリクエストとは、ブラウザやアプリがサーバーに対して、「このページを見せて」「このデータを送って」などとお願いする通信のことである。
たとえば、Webサイトを開くとき、ブラウザはサーバーへ「このURLのページをください」とリクエストを送っている。そのお願いを受け取ったサーバーは、HTMLや画像、JSONデータなどを返す。この返事がHTTPレスポンスである。初心者向けには、HTTPリクエストは「お店に注文を出すこと」、HTTPレスポンスは「注文に対して商品や返事が返ってくること」と考えるとわかりやすい。
詳細解説
HTTPリクエストは「サーバーへのお願い」である
WebサイトやWebアプリでは、ユーザーが画面を開いたり、ボタンを押したり、フォームを送信したりするたびに、裏側で通信が行われることがある。
その通信の中で、ブラウザやアプリからサーバーへ送られる「お願い」がHTTPリクエストである。
たとえば、次のようなお願いがある。
- トップページを表示したい
- 商品一覧を取得したい
- ログイン情報を送信したい
- 問い合わせフォームの内容を送信したい
- APIからJSONデータを取得したい
つまりHTTPリクエストは、クライアント側からサーバー側へ「これをしてください」と伝えるための通信である。
Client と Server の関係
HTTPリクエストを理解するには、Client と Server の関係を見ると分かりやすい。
- Client
リクエストを送る側。ブラウザ、スマホアプリ、フロントエンドなど - Server
リクエストを受け取り、処理して返事をする側
たとえば、ユーザーがブラウザで https://example.com を開いたとする。
このとき、ブラウザがClientとしてサーバーにHTTPリクエストを送る。
サーバーはそのリクエストを受け取り、必要なページデータをHTTPレスポンスとして返す。
このように、Webの基本は「ClientがRequestを送り、ServerがResponseを返す」という流れで成り立っている。
HTTP Response との違い
HTTPリクエストとセットで覚えたいのが HTTP Response である。
- HTTP Request
クライアントからサーバーへのお願い - HTTP Response
サーバーからクライアントへの返事
たとえば、飲食店でたとえるなら次のようになる。
- Request = 「カレーをください」と注文する
- Response = カレーが出てくる、または「売り切れです」と返事が来る
Webでも同じように、リクエストを送った結果として、サーバーから何らかのレスポンスが返ってくる。
この往復が、Web通信の基本である。
HTTPリクエストには何が含まれるのか
HTTPリクエストは、「どこへアクセスするか」だけでなく、「何をしたいか」「どんな補足情報を送るか」「必要ならどんなデータを送るか」も含む通信である。
代表的には次のようなものがある。
URL
どこへアクセスしたいかを示す情報である。
たとえば /products や /contact のようなパスも関係する。
HTTPメソッド
何をしたいかを示す種類である。
代表的には GET や POST などがある。
ヘッダー
ブラウザや認証情報、受け取りたいデータ形式など、補足情報を入れる場所である。
ボディ
フォームの入力内容やJSONデータなど、サーバーへ送る本体データである。
主に POST、PUT、PATCH などで使われる。
つまりHTTPリクエストは、「どこへ」「何をしたいか」「必要ならどんなデータを送るか」をまとめた通信である。
GET と POST の違い
HTTPリクエストで特によく出てくるのが、GET と POST である。
GET
GETは、主にデータを取得するときに使う。
たとえば、ページを表示したり、商品一覧を取得したりするときに使われる。
GET /products
これは、「商品一覧をください」というリクエストのイメージである。
POST
POSTは、主にデータを送信するときに使う。
たとえば、フォーム送信、ログイン、注文作成などで使われる。
POST /contact
これは、「お問い合わせ内容を送信します」というリクエストのイメージである。
初心者のうちは、まず「GETは取得、POSTは送信」と覚えると理解しやすい。
そのほかのHTTPメソッド
GETとPOST以外にも、APIでは次のようなHTTPメソッドが使われる。
- PUT
データ全体を更新する - PATCH
データの一部を更新する - DELETE
データを削除する
たとえば、ユーザー情報を更新したり、商品を削除したりするAPIでは、こうしたメソッドが使われることがある。
GET /users/123
PATCH /users/123
DELETE /users/123
同じURLでも、HTTPメソッドが違うと意味が変わることがある。
そのため、HTTPリクエストを見るときは、URLだけでなくメソッドも一緒に見ることが大切である。
Endpoint との関係
APIの文脈では、HTTPリクエストは Endpoint に対して送られる。
たとえば、次のようなエンドポイントがある。
GET https://api.example.com/products
これは、https://api.example.com/products というエンドポイントに対して、GETリクエストを送っている状態である。
整理すると、次のようになる。
- Endpoint
リクエストを送る具体的な入口 - HTTP Request
その入口に送るお願い - HTTP Response
そのお願いに対する返事
この関係が分かると、API通信の仕組みがかなり読みやすくなる。
フォーム送信もHTTPリクエストである
問い合わせフォームやログインフォームを送信するときも、裏側ではHTTPリクエストが送られている。
たとえば、問い合わせフォームで次のような内容を入力したとする。
- 名前
- メールアドレス
- 問い合わせ内容
送信ボタンを押すと、ブラウザはその入力内容をサーバーへ送る。
サーバーは内容を受け取り、保存したり、メール送信したり、完了画面を返したりする。
つまり、フォーム送信は「ユーザーが入力したデータをHTTPリクエストとしてサーバーに渡す処理」である。
fetch や API通信でよく出てくる
JavaScriptでAPI通信を行うときも、HTTPリクエストを送っている。
たとえば、次のようなコードがある。
fetch("https://api.example.com/products")
.then(response => response.json())
.then(data => {
console.log(data);
});
このコードでは、https://api.example.com/products にGETリクエストを送り、返ってきたレスポンスをJSONとして読み取っている。
このように、HTTPリクエストは画面表示だけでなく、JavaScriptからデータを取りに行くときにも使われる。
ブラウザの開発者ツールで確認できる
HTTPリクエストは、ブラウザの開発者ツールで確認できる。
Chromeなどでは、開発者ツールの「Network」タブを見ると、ページ表示時やボタン操作時にどんなリクエストが送られているかを確認できる。
たとえば、次のような情報が見られる。
Webアプリの不具合調査では、このNetworkタブが非常に重要になる。
「ボタンを押したのに反応しない」ときも、実はリクエストが送られていない、リクエストは送られているがエラーが返っている、という切り分けができる。
Status Code との関係
HTTPリクエストを送ると、サーバーはHTTPレスポンスを返す。
そのレスポンスには、処理結果を示す Status Code が含まれる。
代表的な例は次の通りである。
200
正常に成功301/302
別のURLへ転送400
リクエスト内容が不正401
認証が必要403
権限がない404
見つからない500
サーバー側のエラー
つまり、HTTPリクエストは「お願い」であり、ステータスコードは「そのお願いがどう処理されたかを示す結果」である。
AI時代にHTTPリクエストの理解が重要な理由
AIにWebアプリやAPIを作らせると、HTTPリクエストという考え方はかなり頻繁に出てくる。
たとえば、次のような場面で必要になる。
- フロントエンドからAPIを呼び出す
- フォーム送信処理を作る
- ログイン処理を実装する
- エラーの原因をNetworkタブで調べる
- サーバー側のEndpointを設計する
- fetchやaxiosのコードを読む
このとき、HTTPリクエストの意味が分かっていないと、「どこに何を送っているのか」「なぜPOSTなのか」「なぜ404や500が出ているのか」が見えにくい。
逆に、HTTPリクエストを「サーバーへのお願い」と理解しているだけで、AIが書いたコードやエラー調査の説明がかなり読みやすくなる。
セキュリティ上の注意点
HTTPリクエストでは、サーバーへデータを送ることがある。
そのため、セキュリティ面でも注意が必要である。
たとえば、次のような点を確認したい。
- パスワードや個人情報を安全に送っているか
- HTTPSで通信しているか
- 不正な入力をそのまま受け取っていないか
- 認証が必要なリクエストに認証チェックがあるか
- 他人のデータを操作できないようにしているか
特にAIが生成したAPIやフォーム処理では、「動くかどうか」だけでなく、「不正なリクエストが来ても安全か」を確認することが重要である。
AIコーディングとの関係
AIにコード生成や修正を依頼するとき、HTTPリクエストの意味を理解していると、出力されたコードやエラー内容を判断しやすくなる。
ブラウザやアプリがサーバーに対して、「このページを見せて」「このデータを送って」などとお願いする通信のこと。
AIへ相談するときは、「何をしたいのか」「どの環境で起きているのか」「どのファイルやエラーを見ているのか」を一緒に伝えるとよい。
用語だけを投げるより、具体的な状況と期待する結果を添えることで、より実用的な回答を得やすくなる。
よくある勘違い
HTTPリクエストは名前だけ覚えれば十分?
名前だけでは不十分である。
実際の開発では、どんな場面で使われ、何と混同しやすいかまで理解しておくと判断しやすい。
HTTPリクエストはAIに任せれば理解しなくてよい?
そうではない。
AIは説明やコードを出せるが、最終的にその内容が正しいか、今の目的に合っているかを確認するのは人間である。
HTTPリクエストは単独で覚えればよい?
単独ではなく、関連する用語や実際の作業の流れと一緒に覚えると理解しやすい。
用語同士のつながりを意識すると、AIへの質問やエラー調査もしやすくなる。
まとめ
- HTTPリクエストは、ブラウザやアプリがサーバーに対して、「このページを見せて」「このデータを送って」などとお願いする通信のこと。
- 関連する用語や実際の作業場面と一緒に理解すると、使いどころを判断しやすい。
- AIコーディングでは、用語の意味を理解しているほど、AIの説明や生成コードを確認しやすくなる。
- 迷ったときは、エラー内容、目的、前提条件を整理してAIに聞くとよい。
より詳しくAIに聞いてみよう
- HTTPリクエストとは何かを、中学生でもわかるように具体例つきで説明してください。
- HTTP Request と HTTP Response の違いを、初心者向けに整理してください。
- GET と POST と PUT と PATCH と DELETE の違いを、具体例つきで教えてください。
- ブラウザのNetworkタブでHTTPリクエストを確認する方法を教えてください。
- AIが書いたAPI通信コードを確認するとき、HTTPリクエストのどこを見るべきか教えてください。