Basic認証

Basic認証（ベーシックにんしょう、）とは、HTTPで定義される認証方式（HTTP認証）の一つ。基本認証と呼ばれることも。
Basic認証では、ユーザ名とパスワードの組みをコロン ":" でつなぎ、Base64でエンコードして送信する。このため、盗聴や改竄が簡単であるという欠点を持つが、ほぼ全てのWebサーバおよびブラウザで対応しているため、広く使われている。
盗聴や改竄を防ぐため、後にDigest認証というユーザ名とパスワードをMD5でハッシュ化して送る方法が考えられた。
通信の流れ.
典型的なBasic認証におけるHTTPクライアントとHTTPサーバの間の通信を紹介する。
だいたいの流れは以下のようになる。
例.
以下に、認証に成功した場合の例を示す。（番号は上記「通信の流れ」と対応させてある）
1.認証を伴わないリクエスト:
GET /private/index.html HTTP/1.1
Host: example.com
2.認証が必要であることを示すサーバのレスポンス:
HTTP/1.1 401 Authorization Required
Date: Wed, 11 May 2005 07:50:26 GMT
Server: Apache/1.3.33 (Unix)
WWW-Authenticate: Basic realm="SECRET AREA"
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
 (ここに人間が読めるエラーメッセージが入る)
3.（クライアントによる提示、およびユーザによる入力）:
 ＜通信は行われない＞
4.認証を伴うリクエスト (ユーザ名 "root"、パスワード "password"):
GET /private/index.html HTTP/1.1
Host: example.com
Authorization: Basic cm9vdDpwYXNzd29yZA
5.サーバのレスポンス
HTTP/1.1 200 OK
Date: Wed, 11 May 2005 07:50:26 GMT