- 1 httpstatコマンドとは?
- 2 検証環境
- 3 インストール方法
- 4 オプション一覧
- 5 基本的な使い方
- 6 転送スピードを表示する方法(HTTPSTAT_SHOW_SPEED=true)
- Z 参考情報
1 httpstatコマンドとは?
Webサイトに接続するとき、そのWebサイトを表示するまでの時間を表示するツールです。表示時間は、Webサイトに対するDNS名前解決時間、TCPコネクション確立時間、TLSハンドシェークにかかる時間、サーバでの処理時間、コンテンツの転送時間等からなります。httpstatコマンドは、これら個々の時間をグラフィカルに表示するツールです。
2 検証環境
AlmaLinuxの版数は以下のとおりです。
[root@server ~]# cat /etc/redhat-release AlmaLinux release 8.6 (Sky Tiger)
カーネル版数は以下のとおりです。
[root@server ~]# uname -r 4.18.0-372.9.1.el8.x86_64
3 インストール方法
下記ページを参考にしてインストールしました。
https://snapcraft.io/install/httpstat/centos
snapdはepelリポジトリにあるので、epel-releaseパッケージをインストールします。
[root@server ~]# dnf -y install epel-release
次に、snapdパッケージをインストールします。
[root@server ~]# dnf -y install snapd
snapd.socketsサービスを有効化します。
[root@server ~]# systemctl enable --now snapd.socket
snapd.socketsサービスの状態を確認します。activeであることがわかります。
[root@server ~]# systemctl is-active snapd.socket active
/var/lib/snapd/snapへのシンボリックリンクを/snapという名前で作成します。
[root@server ~]# ln -s /var/lib/snapd/snap /snap
環境変数PATHを確認します。
[root@server ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
仮想マシンを再起動します。
[root@server ~]# shutdown -r now
環境変数PATHを確認します。PATHに/var/lib/snapd/snap/binが追加されたことがわかります。
[root@server ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/lib/snapd/snap/bin:/root/bin
httpstatコマンドをインストールします。
[root@server ~]# snap install httpstat 2022-08-15T08:05:19-04:00 INFO Waiting for automatic snapd restart... httpstat 1.1.3 from Simos Xenitellis (simosx) installed
httpstatコマンドの版数を確認します。
[root@server ~]# httpstat --version httpstat 1.1.3
4 オプション一覧
オプションは以下のとおりです。
[root@server ~]# httpstat -h Usage: httpstat URL [CURL_OPTIONS] httpstat -h | --help httpstat --version Arguments: URL url to request, could be with or without `http(s)://` prefix Options: CURL_OPTIONS any curl supported options, except for -w -D -o -S -s, which are already used internally. -h --help show this screen. --version show version. Environments: HTTPSTAT_SHOW_BODY By default httpstat will write response body in a tempfile, but you can let it print out by setting this variable to `true`. HTTPSTAT_SHOW_SPEED set to `true` to show download and upload speed.
5 基本的な使い方
google.co.jpにアクセスしてみます。実行結果より、DNS名前解決に2ミリ秒、TCPコネクション確立に7ミリ秒かかっていることがわかります。そして、Webサイトの表示まで、155ミリ秒かかっていることがわかります。
[root@server ~]# httpstat https://www.google.co.jp/ HTTP/1.1 200 OK Date: Mon, 15 Aug 2022 12:33:56 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=Shift_JIS P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info." Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Set-Cookie: 1P_JAR=2022-08-15-12; expires=Wed, 14-Sep-2022 12:33:56 GMT; path=/; domain=.google.co.jp; Secure Set-Cookie: AEC=AakniGO6QqLGEKYnZGFHeEFVZVPhQukN8PJICGv8dCSILo9T4DcQ4Lml2g; expires=Sat, 11-Feb-2023 12:33:56 GMT; path=/; domain=.google.co.jp; Secure; HttpOnly; SameSite=lax Set-Cookie: NID=511=gwIyrsp8Ll8NNpoWS-NAsqjxFazfzK5XX0-yeJZEttW4ylX940nyG4lWC2PvTA1kSVwWXcFakwVEth28EpTDUCxvSV2Hnr9_wRFWKAqWsLeK72j5PrFtMTPtBxCi9mPPutixldm_X78C1RMuWD_z2qEWFxDjlkTTGOiwwxcvMeE; expires=Tue, 14-Feb-2023 12:33:56 GMT; path=/; domain=.google.co.jp; HttpOnly Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" Accept-Ranges: none Vary: Accept-Encoding Transfer-Encoding: chunked Body stored in: /tmp/tmpfntrdrc1 DNS Lookup TCP Connection SSL Handshake Server Processing Content Transfer [ 2ms | 7ms | 61ms | 83ms | 2ms ] | | | | | namelookup:2ms | | | | connect:9ms | | | pretransfer:70ms | | starttransfer:153ms | total:155ms [root@server ~]#
次に首相官邸のWebサイトにアクセスしてみます。
[root@server ~]# httpstat https://www.kantei.go.jp/jp/rekidainaikaku/index.html HTTP/1.1 200 OK Content-Type: text/html Content-Length: 88862 Connection: keep-alive x-amz-id-2: UFaP3UaX/tWPbE6JCa1YJ1gXXx+aqyixuZbIDTTnFjNY5UULoBLw35roP5fW6MbyvGyWRk+IMTM= x-amz-request-id: ZSHPNNMQ3HWZ01KD x-amz-replication-status: COMPLETED Last-Modified: Mon, 08 Aug 2022 15:12:32 GMT x-amz-server-side-encryption: AES256 x-amz-meta-user-agent: AWSTransfer x-amz-meta-user-agent-id: kantei-prd-apn01-sftpuser-kantei01-alaya01@s-c73fde2b48d346ed8 x-amz-version-id: _zdgdTcWZOI_4qbLIlrF40P9T2yQjTPU Accept-Ranges: bytes Server: none Date: Mon, 15 Aug 2022 12:50:59 GMT ETag: "8b8b555a32f6b9a380436f5ddb04e376" X-Cache: Hit from cloudfront Via: 1.1 1d52323084c6753f5a9a5a3fa0fda23c.cloudfront.net (CloudFront) X-Amz-Cf-Pop: NRT57-P3 X-Amz-Cf-Id: d0i96v7wIyX81KhgNqxlwMPYLuYQog5wZgUA64hKTTzC4B_xGpuw6A== Age: 19 Body stored in: /tmp/tmpb3e5d4e0 DNS Lookup TCP Connection SSL Handshake Server Processing Content Transfer [ 4ms | 9ms | 30ms | 42ms | 12ms ] | | | | | namelookup:4ms | | | | connect:13ms | | | pretransfer:43ms | | starttransfer:85ms | total:97ms [root@server ~]#
6 転送スピードを表示する方法(HTTPSTAT_SHOW_SPEED=true)
環境変数HTTPSTAT_SHOW_SPEEDにtrueを設定すると、実行結果の最後にspeed_download,speed_uploadが表示されるようになり、Webサイトにアクセスしたときのコンテンツの転送スピードが表示できます。
HTTPSTAT_SHOW_SPEEDにtrueを設定します。
[root@server ~]# export HTTPSTAT_SHOW_SPEED=true
google.co.jpにアクセスしてみます。コンテンツのダウンロードのスピードが 40.8 KiB/秒であることがわかります。
[root@server ~]# httpstat https://www.google.co.jp/ HTTP/1.1 200 OK Date: Tue, 30 Aug 2022 11:40:14 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=Shift_JIS P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info." Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Set-Cookie: 1P_JAR=2022-08-30-11; expires=Thu, 29-Sep-2022 11:40:14 GMT; path=/; domain=.google.co.jp; Secure Set-Cookie: AEC=AakniGNrZxtKHwvokrzHaZ_Z2fhi52HXvanrPJdfR3KBpKOV71kFKWYsEg; expires=Sun, 26-Feb-2023 11:40:14 GMT; path=/; domain=.google.co.jp; Secure; HttpOnly; SameSite=lax Set-Cookie: NID=511=qn3ZQDxtpzksRgJiLjfh0wIlhWJtuWQVeJ1qNaOimgYEzkUSLJD0pjZGVXTKBhSndDqEb7Qpkw5RU--ft0Ioqv3yIQySgvSkwmygw34bMcSLHYX-l8adHy1nYl0ftHABLNc7XC9MpRobI3blr434XUeTOfQpL-m8ofJ01n9Xzbc; expires=Wed, 01-Mar-2023 11:40:14 GMT; path=/; domain=.google.co.jp; HttpOnly Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" Accept-Ranges: none Vary: Accept-Encoding Transfer-Encoding: chunked Body stored in: /tmp/tmp_auatvri DNS Lookup TCP Connection SSL Handshake Server Processing Content Transfer [ 48ms | 12ms | 104ms | 160ms | 10ms ] | | | | | namelookup:48ms | | | | connect:60ms | | | pretransfer:164ms | | starttransfer:324ms | total:334ms speed_download: 40.8 KiB, speed_upload: 0.0 KiB [root@server ~]#
Z 参考情報
私が業務や記事執筆で参考にした書籍を以下のページに記載します。
Linux技術のスキルアップをしよう! - hana_shinのLinux技術ブログ