UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#178 POSTリクエストとリンクからのGETリクエストの違い

記入日:2023-07-05 編集日:2023-07-05

POSTリクエストとリンクからのGETリクエストの違いについて解説してみようと思います。

この記事を読むと(約5分)
POSTリクエストとリンクからのGETリクエストの違いについてイメージできます。

POSTリクエストとGETリクエスト

ボタンからのPOSTリクエスト:
ボタンを使用してHTMLフォームを送信する場合、通常はPOSTメソッドを使用します。ボタンをクリックすると、フォームのデータがサーバーに送信されます。POSTリクエストでは、フォームのデータはHTTPリクエストの本文に含まれます。一般的に、フォームのデータはサーバー側で処理され、データベースに保存されたり、処理結果が表示されたりします。

リンクからのGETリクエスト:
リンクをクリックすると、GETメソッドに基づいてリンク先のURLに対してリクエストが送信されます。GETリクエストでは、データはURLのクエリ文字列の一部として送信されます。クエリ文字列は、URLの末尾に「?」を付けてキーと値のペアとして追加されます。GETリクエストは、リソースの取得や検索など、サーバーから情報を取得するために使用されます。ブラウザのアドレスバーにURLを直接入力することでもGETリクエストを送信できます。


ボタンを使用したPOSTリクエストは、フォームのデータを送信するためのより柔軟な方法であり、リンクを使用したGETリクエストは、データの取得やリンク先のページへの移動など、情報の要求に使用されます。適切なメソッドを使用することで、Webアプリケーションやサイトの動作を制御することができます。

POSTとGETの書き方

POSTメソッドを使用してxxxxとyyyyのキーで情報を渡す場合のHTMLコードは次のようになります:

<form action="your_url" method="POST">
  <input type="text" name="xxxx" value="データ1">
  <input type="text" name="yyyy" value="データ2">
  <input type="submit" value="送信">
</form>

このコードでは、<form>要素でデータを囲み、action属性でデータを送信する先のURLを指定しています。method属性にはPOSTを指定しています。データは<input>要素で入力され、name属性でキーを指定します。ユーザーがフォームを送信すると、データは指定されたURLにPOSTリクエストとして送信されます。

GETメソッドを使用してxxxxとyyyyのキーで情報を渡す場合のHTMLコードは次のようになります:

<a href="your_url?xxxx=データ1&yyyy=データ2">リンク</a>

このコードでは、<a>要素でリンクを作成し、href属性でデータを含んだURLを指定しています。データはクエリ文字列としてURLに含まれ、キーと値のペアは?以降にキー=値の形式で指定します。複数のキーと値がある場合は、&で区切ります。

このように、POSTメソッドではフォームを使用してデータを送信し、GETメソッドではリンクのURLにデータを含めて送信します。どちらの方法も目的や使用場面に応じて使い分けることが重要です。

PHPでPOSTデータとGETデータを取得

POSTデータの取得:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $xxxx = isset($_POST['xxxx']) ? $_POST['xxxx'] : null;
    $yyyy = isset($_POST['yyyy']) ? $_POST['yyyy'] : null;

    if ($xxxx !== null && $yyyy !== null) {
        // POSTデータが取得できた場合の処理
        // $xxxxと$yyyyにはPOSTされた値が格納されています
        // ここで必要な処理を行ってください
        echo "POSTデータの取得に成功しました。";
    } else {
        // POSTデータが取得できなかった場合の処理
        echo "POSTデータがありません。";
        // ここで処理を中断するか、エラーメッセージを表示してください
    }
} else {
    // POSTリクエストではない場合の処理
    echo "POSTリクエストではありません。";
    // ここで処理を中断するか、エラーメッセージを表示してください
}
GETデータの取得:
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $xxxx = isset($_GET['xxxx']) ? $_GET['xxxx'] : null;
    $yyyy = isset($_GET['yyyy']) ? $_GET['yyyy'] : null;

    if ($xxxx !== null && $yyyy !== null) {
        // GETデータが取得できた場合の処理
        // $xxxxと$yyyyにはGETパラメータの値が格納されています
        // ここで必要な処理を行ってください
        echo "GETデータの取得に成功しました。";
    } else {
        // GETデータが取得できなかった場合の処理
        echo "GETデータがありません。";
        // ここで処理を中断するか、エラーメッセージを表示してください
    }
} else {
    // GETリクエストではない場合の処理
    echo "GETリクエストではありません。";
    // ここで処理を中断するか、エラーメッセージを表示してください
}

上記のコードでは、$_POSTと$_GETスーパーグローバル変数を使用して、それぞれのデータを取得しています。変数が存在しない場合に備えて、isset関数を使用して値の存在をチェックしています。POSTデータとGETデータが取得できた場合には、それに応じた処理を行っています。データが取得できなかった場合にはエラーメッセージを表示しています。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。