何が起きたのか?
511 は「目的のサーバーに行く前に、ネットワークそのものの利用認証を済ませてください」というサインです。 教室で言えば、廊下で「校内 Wi-Fi 利用申請を出してから教室に入ってね」と先生に呼び止められる——そんな場面に近いです。サーバー本体の認証 (401) ではなく、ネットワーク側の入口での足止めです。
カフェや空港の公衆 Wi-Fi で見かける「利用規約に同意して接続」のページ、いわゆるキャプティブポータルの仕組みです。ブラウザからアクセスすればポータルに飛ぶことが多いですが、API クライアントでは 511 が直接返ってきて気付きにくいことがあります。
黒板からのひとこと
校内の Wi-Fi に接続するときは、最初に「利用規約に同意します」「学籍番号を入力します」といった手続きが必要です。これを終えるまでは、教室の中の話 (各サービス) に進めません。校門での受付のような、入口の儀式です。
511 もそれと同じで、まずネットワーク側の入口を通過する必要があります。レスポンス本文や Link ヘッダで、認証ページの URL が示されていることが多く、そこから手続きを進めます。
解決への歩み
大丈夫、次はこうしてみよう:
- ブラウザを開いて任意のページにアクセス:キャプティブポータルへ自動遷移することが多い
- Wi-Fi の利用規約や認証画面を確認:同意・ログインを完了する
- モバイル回線に切り替えて確認:ネットワーク側の問題か切り分けできる
- ネットワーク認証の運用を整理(管理者向け):ポータル設計、API 利用者向けの案内、Link ヘッダで誘導
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 511 Network Authentication Required
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>511 Network Authentication Required</h1></body></html>