httpdiff – HTTPレスポンスの差分チェック
複数のサーバを使ってサービスを運用している時に、サーバによって動作が異なることがあります。そのために不可解なエラーにハマったりする訳ですが、チェックするのが意外と面倒です。 そこで使ってみたいのがhttpdiffです。2つのサーバ間におけるヘッダー情報の差分を表示してくれます。
httpdiffの使い方
例えば以下のような実行をします。
$ httpdiff http://www.google.co.jp http://www.google.com/?gws_rd=cr
Doing GET:
http://www.google.co.jp
http://www.google.com/?gws_rd=cr
Content-Type header different:
text/html; charset=Shift_JIS
text/html; charset=ISO-8859-1
Set-Cookie header different:
PREF=ID=c552d43dd575889f:FF=0:TM=1427673199:LM=1427673199:S=idAEXMvx2sRxJq-2; expires=Tue, 28-Mar-2017 23:53:19 GMT; path=/; domain=.google.co.jp
PREF=ID=50d2e35b1a1a36a9:FF=0:TM=1427673199:LM=1427673199:S=7vry2b8Io4kZWfsO; expires=Tue, 28-Mar-2017 23:53:19 GMT; path=/; domain=.google.com
Set-Cookie header different:
NID=67=DC8xDSKZSJs4ZJBgQrpjubvlzf00yZk9w5k-k1cE1gIQ9ZJMZtRsH0hatPr34FvN0spAcuVYBiedplqTSBSVGn5pnr7G6fel-mitxpaHffFSzxyCX5SUD7eN-Q-CxdMK; expires=Mon, 28-Sep-2015 23:53:19 GMT; path=/; domain=.google.co.jp; HttpOnly
NID=67=S-XrT2Kg93xqf7Aa9oSKYL2PCvNwnaBP4rmEDLP03fvRPQf9r0WbkjdT0ke-BGxC252W_4SyO3sffLiFaYlzzDnqlM7icZKmVZfACm9aNBU_oZ-UoiZJ3J4j6iBAEKHK; expires=Mon, 28-Sep-2015 23:53:19 GMT; path=/; domain=.google.com; HttpOnly
Body lengths differ:
18080
17927
Wrote body of http://www.google.co.jp to /var/folders/bw/gkhg6k2948x27hmyj9tc9y0c0000gn/T/httpdiff898763466
Wrote body of http://www.google.com/?gws_rd=cr to /var/folders/bw/gkhg6k2948x27hmyj9tc9y0c0000gn/T/httpdiff227573665
これはGoogleのco.jpとcomのレスポンスをチェックしています。こうした外部に公開されたサーバはもちろん、リバースプロキシの後ろにある各サーバごとに実行して動作をチェックするのも良さそうです。
メソッドはデフォルトでGETですが、HEADやOPTIONSを呼ぶことも可能です。この他、サンプルとしてはhttpとhttpsの違いを見るといった使い方もできます。
httpdiffはGo製、GPLのオープンソース・ソフトウェアです。