例えば http://example.com/index.htmlに接続すると仮定してtelnetを用いると
> telnet example.com 80
とコマンドを打ち続いて
GET /index.html HTTP/1.1
User-Agent: Telnet [ja] (Windows)
Host: example.com
と入力してエンター2回押すのですがBASIC認証だとこのままでは弾かれてしまいます。確かサーバーのログを見た感じではリクエストの際にユーザ名とパスワードを同時に送っているっぽいのでググって見たらAuthorizationヘッダで実現しているサンプルがありました。
Authorization: Basic aG9nZTpmdWdh
といった感じでAuthorization: +認証種別+BASE64エンコードされた文字列のようです。(今まで素で送っているものと思ってた。。。盗聴されれば本当のユーザ・パス知るまでもないのですが)
BASE64のコードを生成するには私の環境ではopensslを用いる方法を取ってみました。
> echo -n ‘hoge:fuga’ | openssl enc -e -base64
aG9nZTpmdWdh
いい加減、自由にヘッダの設定できるカスタムブラウザ作らないとな…。(携帯3キャリ全機種のプロファイルを登録できるような形で)
HTTP クライアントを作ってみよう(5) – Basic 認証編 –
http://x68000.q-e-d.net/~68user/net/http-auth-1.html