[4] [DFN[[ODDE[[[511]]]]]] ([DFN[[[Network Authentication Required]]]])
は、[[ネットワーク]]の利用のための[[認証]]が必要なことを表す[[状態符号]]です。

* 仕様書

[REFS[
- [1] [CITE@en[RFC 6585 - Additional HTTP Status Codes]]
( ([TIME[2012-05-03 01:56:08 +09:00]] 版))
<https://tools.ietf.org/html/rfc6585#section-6>
]REFS]

* 意味

[5] [CODE[[[511]]]] は、[[クライアント]]が[[ネットワークアクセス]]を得るために[[認証]]が必要なことを示します
[SRC[>>1]]。

[12] [CODE[[[511]]]] は、 [[captive portal]] が
([[サーバー]]からの[[応答]]を期待する) [[クライアント]]に害を及ぼす問題を軽減するためのものです
[SRC[>>1]]。 [[captive portal]] を推奨するものではありません [SRC[>>1]]。

* 構文

[6] [[応答]]の[[表現]]は、[[利用者]]が [[credentials]] を[[提出]]できるような[[資源]]
(例えば [[HTML]] の[[フォーム]]) への[[リンク]]を含む[['''べきです''']] [SRC[>>1]]。

[7] [CODE[[[511]]]] [[応答]]自体は [[challenge]] や[[ログイン]]の[[インターフェイス]]を含む[['''べきではありません''']] [SRC[>>1]]。

;; [8] [[ブラウザー]]の表示上、[[ログイン]]が元々[[要求]]された [[URL]]
に属することになってしまうからです [SRC[>>1]]。

* 文脈

[10] [[プロキシ]]が、ネットワークアクセスを制御する方法として使うことができます [SRC[>>1]]。

[9] [[起源サーバー]]は、 [CODE[[[511]]]] を[[生成]]する[['''べきではありません''']]
[SRC[>>1]]。

[15] [[HTTPS]] では、 ([[MITM proxy]] を除き) 原理的に [CODE[[[511]]]]
は使えません。

* 処理

[11] [[キャッシュ可能]]ではありません [SRC[>>1]]。

[13] [CODE[[[511]]]] は比較的新しい[[状態符号]]なので、
[[Webブラウザー]]は特別扱いしていないかもしれません。
[CODE[[[511]]]] [[応答]]は明らかに[[起源サーバー]]が返す[[応答]]ではないので、
[CODE[[[407]]]] [[応答]]同様、[[応答]]の[[スクリプト]]が[[要求URL]]
と[[同じ起源]]のデータにアクセスできないような配慮が必要かもしれません。

[14] 逆に本来の[[起源サーバー]]から提供された[[スクリプト]]も、
[CODE[[[511]]]] [[応答]]にアクセスできるべきではなさそうです。
([[イントラネット]]の情報が流出してしまい、[[プライバシー]]の問題ともなります。)

* メモ

[2] [CITE@en[List of HTTP status codes - Wikipedia, the free encyclopedia]]
( ([TIME[2013-10-01 11:44:11 +09:00]] 版))
<http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#511>

[3] [CITE@en[728658 – (http-511) Handle HTTP error 511 Network Authentication Required (RFC 6585: standard secure proxy authentification/captive portal detection)]]
([TIME[2015-03-21 23:02:37 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=728658>

[16] [CITE@en[728658 – (http-511) Handle HTTP error 511 Network Authentication Required (RFC 6585: standard secure proxy authentification/captive portal detection)]]
( ([TIME[2016-06-10 00:40:32 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=728658>

[FIG(quote)[
[FIGCAPTION[
[17] [CITE@en[728658 – (http-511) Handle HTTP error 511 Network Authentication Required (RFC 6585: standard secure proxy authentification/captive portal detection)]]
( ([TIME[2016-06-10 00:44:26 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=728658#c19>
]FIGCAPTION]

> 511 impacts a browser like Mozilla in a couple of ways --
>   * It shouldn't cache .favicons that have a 511
>   * It should consider a feed that returns 511 as temporarily unavailable, not corrupt (or authoritative)
>   * It should retry automated downloads (like updates) later if receiving a 511
> 

]FIG]
