HTTPの疎通テストでtelnetで80番ポートに繋いで実験しているときに気づいたのですが、いつの間にか/usr/bin/GET
というコマンドがインストールされてました。
ディストリビューションはCentOS6.8。
調べるとperl-libwww-perlパッケージに同梱されているコマンドのようで、何かの依存関係でインストールされたのでしょうね。
GET
コマンドの他にHEAD
コマンドとPOST
コマンドが使えます。
/usr/bin/GET
GET
コマンドはWebサイトのコンテンツを拾ってくるコマンド。
# GET 'http://yahoo.co.jp'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。">
(以下略)
便利ですね。
/usr/bin/HEAD
HEAD
コマンドは、ヘッダ情報を取得します。
# HEAD 'http://yahoo.co.jp'
200 OK
Cache-Control: private, no-cache, no-store, must-revalidate
Connection: close
Date: Tue, 23 Aug 2016 05:16:27 GMT
Pragma: no-cache
Server: nginx
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Expires: -1
Client-Date: Tue, 23 Aug 2016 05:16:27 GMT
Client-Peer: 183.79.75.234:80
Client-Response-Num: 1
P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p_jp.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
X-XRDS-Location: https://open.login.yahooapis.jp/openid20/www.yahoo.co.jp/xrds
X-XSS-Protection: 1; mode=block
curlやwgetよりもシンプルに使えるのでWeb開発でHEADのチェックで使えそうです。
/usr/bin/POST
もう一つのPOST
コマンドは名前の通り、POSTメソッドを投げてくれるコマンドだと思いますが、手っ取り早くPOSTする環境がなかったので未検証です。ゆるくてすいません。
ということで
GET
、HEAD
、POST
コマンドは手軽にHTTPメソッドを試せるので色々便利になりそうです。
ところで。
$ GET /
<HTML>
<HEAD>
<TITLE>Directory /</TITLE>
<BASE HREF="file:/">
</HEAD>
<BODY>
<H1>Directory listing of /</H1>
<UL>
<LI><A HREF="./">./</A>
<LI><A HREF="../">../</A>
<LI><A HREF=".autofsck">.autofsck</A>
<LI><A HREF=".autorelabel">.autorelabel</A>
<LI><A HREF="bin/">bin/</A>
<LI><A HREF="boot/">boot/</A>
<LI><A HREF="cgroup/">cgroup/</A>
<LI><A HREF="dev/">dev/</A>
<LI><A HREF="etc/">etc/</A>
<LI><A HREF="home/">home/</A>
<LI><A HREF="lib/">lib/</A>
<LI><A HREF="lib64/">lib64/</A>
<LI><A HREF="lost%2Bfound/">lost+found/</A>
<LI><A HREF="media/">media/</A>
<LI><A HREF="mnt/">mnt/</A>
<LI><A HREF="opt/">opt/</A>
<LI><A HREF="proc/">proc/</A>
<LI><A HREF="root/">root/</A>
<LI><A HREF="sbin/">sbin/</A>
<LI><A HREF="selinux/">selinux/</A>
<LI><A HREF="srv/">srv/</A>
<LI><A HREF="sys/">sys/</A>
<LI><A HREF="tmp/">tmp/</A>
<LI><A HREF="usr/">usr/</A>
<LI><A HREF="vagrant/">vagrant/</A>
<LI><A HREF="var/">var/</A>
</UL>
</BODY>
</HTML>
おっ、ファイルシステムをHTMLフォーマットで返すのか…。しかし、パーミッションで見れないファイルは拾えないので安心かも。