3

CSS3 と HTML5 の最新機能を多用する Web サイトがあります。そのため、IE7 以下では動作せず、見栄えも非常に悪くなります。非常に少数のユーザーにとって作業が多すぎるため、これらの古いブラウザーをサポートしないという決定が下されました。通常のページを表示する代わりに、特別なエラー/警告ページが表示され、表示される理由と新しいブラウザをインストールする必要があることが通知されます。

これはうまくいきます。しかし、私の質問は、このページでどの HTTP ステータス コードを送信する必要があるかということです。それは問題ですか?今のところ、レギュラー200OKです。

お時間とご尽力いただきありがとうございます。

4

1 に答える 1

4

ここにはいくつかの選択肢があり、主に次の 2 つのパラメーターに依存します。

  • ステータスコードはそのような問題に適していますか? HTTP トランザクションではなく、ブラウザに送信されるコンテンツを含む状態で使用することは許可されていますか? (ブラウザは、特定の HTML/CSS 標準をサポートしているかどうかを HTTP 経由で明らかにしません)。

  • ブラウザによってどのように解釈されるか。一部のブラウザーは、特定のステータス コードを受信すると、送信された HTML をレンダリングすることさえ気にせず、代わりにデフォルトの組み込みページを表示します。

私がすることは、適切に文書化されたエラー コードを選択し、それをセマンティック レスポンスとして使用して、ブラウザーが本文を無視していないことを確認することです。私は2つの異なる解決策を提案します:

  • 302 Found最初に要求されたリソースで に応答し、 200 OK. これは、このような問題が発生したときにほとんどのウェブマスターが行うことです。これは主に、HTTP トランザクション自体で何も失敗していないためです。追加の HTTP パラメータに従って適切なビューを生成できるように、ユーザーをリダイレクトしているだけです。

  • ブラウザに何が起こったかを伝えることで、応答にセマンティック エラー コードを与える。繰り返しになりますが、ブラウザーがこのエラー コードにどのように反応するかは実装に依存し、大幅に異なる可能性があります。明らかに、4xx ステータス コードはクライアント側のエラーを通知するためのものであるため、返される必要があります。415 Unsupported Media Typeaまたは aを使用したくなります417 Expectation Failed

HTTP 応答コードのソース: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

于 2013-05-26T13:51:22.040 に答える