Telnetを使ってHTTPリクエストを発行する方法についての覚え書きです。
環境
Linux (Ubuntu 16.04)
使い方
telnet にホストのアドレスとポート番号を渡してサーバとTCPの通信を確立します。
$ telnet yahoo.co.jp 80 Trying 182.22.59.229... Connected to yahoo.co.jp. Escape character is '^]'.
接続が完了したら HEAD, GET, POST のいずれかのメッソドを使ってHTTPのリクエストを送信します。
HEAD
HEADメッソドを利用してHTTPリクエストを送信するとサーバからHTTPヘッダが返ります。
サーバとの通信を確認するのが目的の場合は HEAD を使うと便利です。
$ telnet yahoo.co.jp 80 Trying 182.22.59.229... Connected to yahoo.co.jp. Escape character is '^]'. HEAD / HTTP/1.0 # HTTPヘッダ HTTP/1.0 200 OK Date: Sat, 10 Feb 2018 08:16:48 GMT 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-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Expires: -1 Pragma: no-cache Cache-Control: private, no-cache, no-store, must-revalidate X-XRDS-Location: https://open.login.yahooapis.jp/openid20/www.yahoo.co.jp/xrds Content-Type: text/html; charset=UTF-8 Age: 0 Connection closed by foreign host.
GET
GETメソッドを利用してHTTPリクエストを送信するとサーバーからHTTPヘッダとページファイルが返ります。
HTMLの記述がそのまま表示されるので読むのは大変ですが一応ページを確認することができます。
$ telnet yahoo.co.jp 80 Trying 182.22.59.229... Connected to yahoo.co.jp. Escape character is '^]'. GET / HTTP/1.0 # 以下HTTPヘッダ (途中省略) HTTP/1.0 200 OK Date: Sat, 10 Feb 2018 08:39:02 GMT 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" ... # 以下ページファイル (途中省略) ...
POST
POSTメソッドを利用してHTTPリクエストを送信するとクライアントからデータを送信してサーバーからHTTPヘッダとページファイルが返ります。
掲示板などサーバーにデータを送信する必要があるWebページで使います。
参考
Hypertext Transfer Protocol – Wikipedia
この記事を読んだ人はこんな記事も読んでいます。
【Linux】Telnetを用いたHTTPリクエストの送信方法