「そういえば、一度認証されたという情報はどうやって保持しているんだろう?」というのが気になったので、ちょっと調べてみた。検証したApacheのバージョンは2.2系。Headersにauthorizationという項目を都度送信するようになる結論を先に書くと、ブラウザがBasic認証を通過した際の認証情報を保持するからだ。仕組みは下記の通り:一度対象ページのBasic認証をパスすると、ブラウザ側はその認証に必要な情報を保持する次に同一ページへアクセスした際、ブラウザはBasic認証の認証情報をauthorizationという項目で、リクエストヘッダーに付与させた上でアクセスするApache側がリクエストヘッダー側から受け取った認証情報を照合、OKなら認証なしでレスポンスを返す↑認証後のリクエストヘッダー情報。authorizationという項目が付与されているのがわかるauthorizationの項目には’Basic’の後にbase64エンコードされた認証情報が格納されている。-Dというようにデコードしてあげれば確認することが可能。余談:RealmについてBasic認証はApacheのhttpd.conf等で特定のディレクトリに対して設定することがほとんどだと思うが、その際にRealm(レルムと読む)という概念がある。聞きなれない言葉だがRealmは”領域“を意味する言葉で、Apacheでは特定のディレクトリに適用する領域名をAuthNameという項目で設定することができる。ApacheはRealmを活用して、アクセスしてきたリクエストがBasic認証がかかっているディレクトリだった場合、この領域情報と認証ダイアログをクライアントサイドに提示することで、クライアント側は一度認証をパスした時にどの領域に対する認証情報なのかを一緒に保持することができるという仕組みでBasic認証を適用しているらしい。参考)https://httpd.apache.org/docs/2.2/ja/howto/auth.htmlhttps://developer.mozilla.org/ja/docs/Web/HTTP/Headers/AuthorizationプロフィールMasyus(ましゅーず)Webエンジニア。ユアマイスター株式会社にて開発のリーダーやっています。妻と銭湯と旅行と柴犬動画をこよなく愛するおっさん。最近は暇さえあれば銭湯開拓する日々。エンジニアリングではAWSのようなインフラからミドルウェア導入・管理、PHP、果てはフロントエンドまでフルスタックにいろいろやっています。Work(マシューズワーク)という名はフリーランス時代に使ってた屋号。