検索フォームはGETにするべきかPOSTにするべきか

GETの利点と言えば、

  1. 検索結果をブックマークしたり、URLをコピーしたり、リンクを作ったりできます。POSTを使っている場合は、検索トップページにしか移動できません。
  2. アクセスログにクエリーが保存されますので、どのような条件で検索されたかを後で分析することができます
  3. GETはプロキシサーバでキャッシュされますので(キャッシュが恩になっていれば)、サーバへの負担が減らせます

ということで僕は圧倒的にGETにするべきだと思いますが、世の中のウェブサイトを見ると、POSTを使っているウェブサイトがかなり多いです。

W3Cでも

  • Use GET if:
    • The interaction is more like a question (i.e., it is
      a safe operation such as a query, read operation, or lookup).
  • Use POST if:
    • The interaction is more like an order, or
    • The interaction changes the state of the resource in a way that
      the user would perceive (e.g., a subscription to a service), or
    • The user be held accountable for the results of the interaction.

となっていますので、GETを使った方がいいと思いますが。GoogleやYahooもGETを使っています。

ということで、皆さんにお聞きしたいのですが。
POSTを使った方が良いというケースはどのようなケースでしょうか?

ちなみにバイオのウェブサイトで調べてみました。

GET派

POST派

ごちゃ混ぜ派

  • BioCompareのAntibody SearchここはほとんどのパラメータはGETで送っていますが、メーカーごとの絞り込みをするとき、そこだけはPOSTになります。