HTTP 401 Unauthorizedだけだと、ただ認証情報が無いってページ表示するだけなので、WWW-Authenticateヘッダで認証方法を示すと、ブラウザ側はユーザー名とパスワードの入力画面を出してくれる。
HTTP 認証 - HTTP | MDN
WWW-Authenticate - HTTP | MDN
http_server.cで、
ヘッダに、"WWW-Authenticate: Basic\r\n"を追加する。
"Basic"はBasic認証方式にするって事。
これでアクセスすると、
ユーザー名とパスワードの入力ダイアログが出る。
この時のブラウザ側のリクエストは普通。
ただ今の時点でどんなユーザー名とパスワードを入力しても、
跳ね返される。
入力してログイン押した時のヘッダを見ると、Authorizationヘッダが付いていて、Basicの後に文字列が来ているが、これはユーザー名とパスワードを':'で繋げてBase64エンコードしたもの。
これを見て、サーバーが判断するのだが、今回は無視してるので跳ね返される。
でキャンセルを押すと、
Unauthorizedのページが表示。
キャンセルした時のヘッダも普通。