背景
GETとPOSTの違いが正しく理解できていなかったので、情報を整理するためにこの記事を書きました。
GET/POSTとは
Webサイトの閲覧をしたり、Webアプリケーションを使ったりする際にWebサイトが置かれているサーバとの間では、毎回リクエスト(要求)とレスポンス(応答)が行われています。
リクエストを行う具体的な方法
1. ブラウザのアドレス欄にURLを直接入力する。
2. お気に入り(ブックマーク)からアクセスする。
3. ページ内のリンクやボタン、画像などをクリックする。
4. 入力フォームに情報を入力して送信ボタンをクリックする。
5. JavaScriptなどからバックグラウンドアクセスする
このような方法があります。
サーバはこう言ったリクエストを受け取って
データ取得など適切な処理を行い該当のページを出力することで、皆さんのパソコンやスマートフォンのブラウザ上にページが表示されるような流れになっています。
このリスクエスト(要求)を行う際に、サーバーに対して「何らかのデータ」を渡したい場合があります。
リクエスト(要求)を行う際にサーバーに渡したいデータ
WebリクエストにおけるGETとPOSTの違い
GETとPOSTとは?
ウェブサイトやウェブアプリケーションとのやり取りでは、デバイスとサーバー間でリクエストとレスポンスが行われます。これには次のような方法があります:
URLを直接ブラウザのアドレスバーに入力する。
ブックマークからアクセスする。
ページ内のリンク、ボタン、画像などをクリックする。
入力フォームから情報を送信し、送信ボタンをクリックする。
JavaScriptなどのスクリプトによるバックグラウンドアクセス。
サーバーはこれらのリクエストを受け取り、適切に処理して対応するページを出力します。
リクエストでデータを渡す
リクエスト時には、サーバーにデータを渡す必要があります。このデータには次のようなものがあります:
表示したい商品や動画のID。
ナビゲーションのためのページ番号。
ログインのためのメールアドレスやパスワード。
名前や住所などの個人情報。
このデータは「リクエストパラメータ」と呼ばれます。
GETメソッド:
GETはURLの末尾にパラメータを付加して送信します。
例:example.com/search?id=10&type=12
パラメータはURLに「?」で始まり、それぞれのパラメータは「&」で区切られます。
URLにパラメータが表示され、長大なデータを送信することはできません。
POSTメソッド:
POSTはURLにパラメータを付加せずにサーバーに送信します。
ログインフォームやデータ送信フォームなど、データの送信が必要な場合に使用されます。
例:HTMLフォームの使用
<form method="POST" action="http://example.com/article">
<div><label>タイトル:<input type="text" id="title" name="title"></label></div>
<div><label>著者:<input type="text" id="author" name="author"></label></div>
<input type="submit" name="submit" value="検索">
</form>
送信するデータはURLに表示されず、フォームフィールドを通じて送信されます。
要約:
GETはページの表示に必要なパラメータに使用されます。
POSTはユーザーが入力するデータの送信に使用されます。
例外として、頻繁なページの遷移やブックマークの場合があります。
結論:
ウェブアプリケーションを開発する際には、各ページの要件に応じて適切なリクエストメソッドを選択してください。