2

たとえば、URL http://example.com/some-private-article.htmlを使用して、自分の Web サイトのページを制限しています。ページを表示するには資格情報を入力する必要があるログイン ページが表示されます。

情報はなくなったのではなく、そこにありますが、その情報へのアクセスは拒否されています。

私は401応答を返しますが、http認証/ダイジェストはありませんが、仕様では必要であると述べられています。ログイン手順はphpでサーバー側で処理されます。

この種のページの正しい HTTP ステータス コードはどれでしょうか?

4

3 に答える 3

1

私はそれをこのようにします:

  1. 許可されていないユーザーをログインページ(URLが異なる)にリダイレクトします。
  2. あなたの個人的な記事のURL200にアクセスできる許可されたユーザーのためにOK。
  3. また、アクセス権を持たない許可ユーザーの場合は403です。
于 2012-12-19T14:33:49.007 に答える
0

HTTP ステータス コードの仕様によると、ユーザーがまだアクセス権を持っていない (ログインしていないか、必要なアクセス許可がない) 場合は、カスタム ログイン ページに 403 または 404 を使用する必要があり、フォームから Web ページにログインする必要があります。 、外部クライアントは、資格情報を使用して (HTTPS 接続を介して) POST 要求を送信してログインし、ページのリロード後に制限されたコンテンツを表示できるようにするセッション キーを使用して Cookie を保存する必要があります。

一方、ログイン ページを GET タイプのリクエストを介してスクリプトで使用できるようにしたい場合や、必ずしも Cookie を持たないクライアントで使用できるようにしたい場合、またはhttps://usernameのような URL からログインできるようにしたい場合は、次のようにします。 password@example.com/some-private-article.htmlの場合、HTTP 認証を使用する必要があり、ブラウザでのログイン ポップアップの表示方法を選択できません。この場合、401 HTTP を使用するのが適切です。ステータスコード。

これが正しいことを願っています。そうでない場合は、修正してください。

于 2013-09-07T18:51:33.257 に答える
-1

各応答コードとその意味を定義しているこのhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlを必ず確認してください。

あなたの目的のために、私はおそらく401 - Unauthorizedをお勧めします。


編集:フォームスタイルの認証を行っている場合、考え直してみると、302 - Found または 307 - ログインページへの一時的なリダイレクトは、自分で認証を行っているため、おそらく賢明な応答です。

于 2012-12-19T14:17:39.953 に答える