0

使用する方が良いですか:

<form class="delete" action="/post/delete/id/1234.html" method="POST">
    <input type="submit" value="delete this post"/>
</form>

...それ以外の:

<a class="delete" href="/post/delete/id/1234.html">delete this post</a>

...データベース内の何かを変更する必要がある場合は? 追加、更新、削除、投票のように?また、ログアウトアクション(アクションが実行されたときにタイムスタンプを保存しているアプリケーション)などについては?

4

5 に答える 5

2

HTTP 仕様では、 POST (この場合はフォーム送信) はデータの変更用であり、GET (この場合はリンク) はデータの取得用です。したがって、POST を使用して削除する必要があり、リンクは取得するためにのみ使用する必要があります。少なくとも、これにより、エンド ユーザーが URL を編集して削除してはいけないものを削除することが少し難しくなります。しかし、実際には、データを変更するものに POST を使用するのは「正しい」ことです。

編集:上記のリンクからのテキストを含む:

GET
指定されたリソースの表現を要求します。GET を使用したリクエストは、データを取得するだけで、他の効果はありません。

于 2013-08-14T18:44:25.047 に答える
1

フォーム送信は、ユーザー定義の値をサーバーに送信する場合です。ここにあなたの例で

<form class="delete" action="/post/delete/id/1234.html" method="POST">
    <input type="submit value="delete this post"/>
</form>

フォーム送信では、操作のためにサーバーに送信する必要がある値を入力できます。フォーム送信を使用する場合の例は、ログイン ページです。登録ページ、つまり、ユーザー定義の値がサーバーに送信されるとき

しかし、この例では

<a class="delete" href="/post/delete/id/1234.html">delete this post</a>

ユーザーが値を入力してサーバーに送信するための入力インターフェイスがありません。これらは、ユーザーが定義していない静的な値を渡したい場合、または主に別のページにリダイレクトする場合に使用されます。

于 2013-08-14T18:48:33.970 に答える