1

SolRのような構文での検索をサポートするRESTfulWebサーバーのロジックを実装しています。一般的な有効なリクエストは次のとおりです。

  • 「https://www.somewhere.com/fooResource/123」
  • 「https://www.somewhere.com/fooResource/456」
  • "https://www.somewhere.com/fooResource?q=title:hi"
  • "https://www.somewhere.com/fooResource?q=title:hello&sort=foo"

私の質問は非常に一般的です。このようなリクエストを受け取った場合はどうすればよいですか?

  • "https://www.somewhere.com/fooResource?q=title:hi&something=foo"

意味のないクエリパラメータ「something」を受け取りましたが、検索エンジンはそれを無視します。するべきか

  • すぐに4xxステータスコードを返す
  • それを無視して、結果とともに200を返します
  • ユースケースに応じて、どちらかが「正しい」
4

2 に答える 2

1

多くの Web ページは、予期しないものを無視します。

通常、URL とパラメーターは、何かをクリックするか、ブラウザーまたは Web サービス クライアントで何らかのコードを実行した結果です。これらは、予期しないものを送信することはめったにありません。

誰かがあなたの Web サイトをだまして何らかの方法で「ハッキング」されたリクエストを送信すると予想される何らかの理由がある場合は、不正なパラメーターを認識して何らかのエラーを返すことにより、それらをロックアウトすることができます。REST サービスには 4xx が妥当です。

于 2013-01-17T23:53:40.543 に答える
0

HTTP ステータスの定義を読みます。悪い情報で何も返さないように練習します。ここでは 400 の定義がThe request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.適切であると思われますが、ユース ケースによっては異なると見なされる場合があります。

IGNORE の場合、クライアントに情報を提供していません。彼らは何かが間違っていることを決して知らないかもしれません。

于 2013-01-17T23:52:58.460 に答える