1日1アウトプットを心がける
- 前提
- Debian GNU/Linux lennyで確認。
正直コレは役に立つか分からないネタ知識的な気がします。単にリクエストを送るならもっとモダンなやり方があるはず。
とりあえず、インストール。
構成によるかも知れないのですが、最小構成でインストールした際はtelnetコマンドが無いのでインストール。
sudo aptitude update && sudo aptitude safe-upgrade && sudo aptitude install -y telnet
送ってみる
コマンド形式は、以下の形式です。
telnet <ホスト> <port番号>
telnetで接続するするとサーバが応答待ちの状態になるので、以下のように入力してあげます。
1行目はHTTPリクエスト行。2行目からメッセージヘッダとなります。最低限Hostを指定しないとだいたいのサーバはBadRequestを返してきます。メッセージヘッダの終了を表すために空の行を含めることを忘れずに。
HEAD / HTTP/1.1 Host: www.google.co.jp
上記のリクエストを送った結果が以下になります。
masasuzu@lenny% telnet google.co.jp 80 Trying 72.14.203.104... Connected to google.co.jp. Escape character is '^]'. HEAD / HTTP/1.1 Host: www.google.co.jp HTTP/1.1 200 OK Date: Sat, 05 Feb 2011 05:54:00 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=Shift_JIS Set-Cookie: PREF=ID=b5f8dc2e4f1032fa:FF=0:TM=1296885240:LM=1296885240:S=zh1x1wrDNqySDQ8P; expires=Mon, 04-Feb-2013 05:54:00 GMT; path=/; domain=.google.co.jp Set-Cookie: NID=43=q425g0gazPJFqGsQsxiWpoY5kC_244zg0CnJV4t_vsbE3O7x-4GXcOLzXqtmKc_MfQu4JsM0viGAI5Y6QxgkzmBvXEhNBS_nB_MBhqdAWrTTSKhMmwJ78ppclNblivPz; expires=Sun, 07-Aug-2011 05:54:00 GMT; path=/; domain=.google.co.jp; HttpOnly Server: gws X-XSS-Protection: 1; mode=block Transfer-Encoding: chunked
それnetcatでもできるよ。
netcatでやるとこんな感じでしょうか。ヒアドキュメントが使えるところが少し便利かな。netcatは自分もあまり使いこなしていないのでもっと勉強したいところ。
masasuzu@lenny% nc google.co.jp 80 << ! heredoc> HEAD / HTTP/1.1 heredoc> Host: www.google.co.jp heredoc> heredoc> ! HTTP/1.1 200 OK Date: Sat, 05 Feb 2011 06:01:21 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=Shift_JIS Set-Cookie: PREF=ID=e5723380a52a3332:FF=0:TM=1296885681:LM=1296885681:S=dlqjmo-AX4M7cqeG; expires=Mon, 04-Feb-2013 06:01:21 GMT; path=/; domain=.google.co.jp Set-Cookie: NID=43=LI6RBHSmAyuGgIUkQAZ3gv4ZUU11IXIe5dLpAo07t4GkI1OJRtxK79Fxj4mx37vcyn_ucEOSUKlCy7mt8aixIEw5EuTQCcYYN7t2WYBM-KO2u3gkazbqCO2GaoHhsuB7; expires=Sun, 07-Aug-2011 06:01:21 GMT; path=/; domain=.google.co.jp; HttpOnly Server: gws X-XSS-Protection: 1; mode=block Transfer-Encoding: chunked
参考?
- telnetからメールを送信してみた
- 以前telnetでSMTPサーバに接続してメールを送ってみたときのメモです。