FTP Proxyの話では、 "User Unknown" の場合も 401 応答にしましょう。
Authorization ヘッダはそのまま使ってもいいのですが、キャッシュの関係を調べてからにします。
認証情報をURLに入れる場合は適宜エスケープするように考えます。
って3番目の要望が実現されると1番目のは無意味になりますね。
それから要求ヘッダにAuthorizationが入っている場合は、いったんアカウント:パスワードつきのURLにリダイレクトするのではなくて、いきなりそれを使ってログインを試みるようにできないでしょうか?
せっかくパスワードをURLに含めないようにしているのに結局パスワードを含めたURLにリダイレクトされてしまうのではいまいち不安です。
匿名でログインしようとするとUSERコマンドでいきなりエラーを返すftpサーバの場合、401ではなくて502が返されてしまってうまく認証のダイアログが出ません。
<<<Sun Jul 30 07:44:06 2000 <<< 220 www3 FTP server (Version 4.1 Fri Mar 20 17:2
8:53 CST 1998) ready.
>>>Sun Jul 30 07:44:06 2000 >>> USER anonymous
<<<Sun Jul 30 07:44:06 2000 <<< 530 User anonymous unknown.
>>>Sun Jul 30 07:44:06 2000 >>> HTTP/1.0 502 Proxy Error
MIME-Version: 1.0
Server: AnWeb/1.30c
Date: Sat, 29 Jul 2000 22:44:06 GMT
Content-Type: text/html
<HTML><BODY>
>>>Sun Jul 30 07:44:06 2000 >>> 530 User anonymous unknown.
>>>Sun Jul 30 07:44:06 2000 >>> </BODY></HTML>
AnHTTPDのプロキシ経由で匿名ではログインできないftpサーバにアクセスするとアカウントとパスワードの入力を要求されますが、どちらかに「#」が含まれていてもそれがエスケープされていないURLにリダイレクトされてしまうので、そこから先をフラグメントIDとみなしてしまいうまくリンクをたどれません。
URLのこの部分に使えない文字(RFC2396参照)はすべてエスケープできないでしょうか?