サイト動作の確認にはcurlコマンドが便利です。
デザインやレイアウトを確認する場合はブラウザから確認を行い、単純にサーバが動いているか?ページがあるか?というような確認にはcurlコマンドを使うほうがシンプルでわかりやすいです。
basic認証が使われているとユーザ名もパスワードも打てないのでcurlが使えない?と思うかもしれませんが、curlでもちゃんとbasic認証を突破できます。
basic認証のユーザ名とパスワードの入力の方法
開発環境でのサイト動作の確認にcurlを使うことが多いのですが、同時にbasic認証が設定されていてそのままcurlを行うと401 unauthorized エラーが返ってきます。
$ curl -IL example.com
HTTP/1.1 401 Unauthorized
Server: apache
Date: Mon, 17 Aug 2022 11:23:21 GMT
Content-Type: text/html
Content-Length: 172
Connection: keep-alive
WWW-Authenticate: Basic realm="basic auth area"
-u ユーザ名:パスワード
認証情報を-uオプションの後に入力してアクセスするとbasic認証を突破できます。
$ curl -iL https://example.com -u 'user:passwd'
パスワードが履歴に残らないように対話式で入力も可能
$ curl -iL https://example.com -u user
Enter host password for user 'user':
curlの-uオプションではユーザ:パスワードをbase64エンコードしてAuthorizationヘッダに追加しています。詳細は下記を確認してみてください。
curlの-uに入れたユーザとパスワードはサーバ側にどのようにして送信しているか?
これは-vオプションで詳細を表示させるとHTTPヘッダに入力されているのが分かります。
$ curl -iL https://example.com -u 'user:passwd' -v
> GET /test-auth HTTP/1.1
> Host: example.com
> Authorization: Basic dXNlcjpwYXNzd2Q=
> User-Agent: curl/7.79.1
Hostヘッダにはドメイン、Authorizationヘッダに認証情報が入力されています。
ランダム文字列のようになっていますが、これはbase64という形式に変換されているからです。
実際に先ほどのアイパスをbase64でエンコードすると同じ文字列になります。
# echo -n "user:passwd" | base64
dXNlcjpwYXNzd2Q=
ヘッダでは特殊文字の使用ができないのでbase64形式に変換する決まりになっています
curlは-Hでヘッダを直接入力できるのでこちらでもbasic認証を突破できます
# curl -IL https://example.com/ -H 'Authorization: Basic dXNlcjpwYXNzd2Q='