cmd
8件のコメント

コマンドプロンプトだけでWebサイトを閲覧する

今回はWeb、その中でもHTTPの部分の話です。世の中にはさまざまなブラウザがあり、非常に高機能なものが多いです。でも、それらが提供している機能のうち一番の基礎となる通信部分に関してはかなりシンプルです。

HTTPとは

まず、はじめにHTTPとは何か?という点に関してです。HTTPはHyper Text Transfer Protocolの略で、Hyper Textを転送するための手続きだ、というわけですね。Hyper Textというのはテキストを超えるものだ、ということです。そして、Hyper Textを書く手段がHTMLで、そのHTMLを伝える手段がHTTPなわけです。このあたりはWikipediaに説明を譲ります。

要は世の中に沢山あるWebサーバーから情報をひっぱってこようとおもったら、HTTPでおしゃべりすればいい、ということです。

Webページを取得してみる

それでは実際にやってみましょう。やってみると簡単ですよ。簡単なページが良いので、いつものようにGoogleのページを引っ張ってきてみましょう。

まずは、googleのWebサーバーであるwww.google.co.jpに接続します。WebサーバーはTCPの80番で動作していますので80番に接続します。

 1: C:\>telnet www.google.co.jp 80

 

接続に成功すると何も表示されない状態になります。それで正常です。この状態でWebサーバーに対してページを要求します。以下のように入力します。

 1: GET / HTTP/1.1

 

 2: Host: www.google.co.jp

 

入力する際に、自分では自分が入力している文字が見えませんがそのまま打てば良いです。そして入力後にはEnterを2回押します。

これで以下のようにgoogleのトップページのHTMLが入手できます。

image

ブラウザでwww.google.co.jpのトップページに行き、ソースを表示すると、まったく同じものが入手できていることがわかると思います。ブラウザが裏でまったく同じ事をしている、ということが実感できるのではないかと思います。

説明すべきことはまだまだ沢山あるのですが、まずはこれが基本です。色々なWebサイトに対して接続、リクエストしてみて楽しんでみて下さい。

子供3人。家族優先。都内SIer勤務。Windows系中心のインフラよりの何でも屋。脱原発。 Microsoft MVP for System Center and Datacenter Management.

8件のコメント

  1. はじめまして。実際やってみると 下記エラーが出ました

    HTTP/1.0 400 Bad Request

    Your client has issued a malformed or illegal request.

    しかし、コマンドプロンプトで webサイトアクセスできることが分かりました。

  2. はじめまして。YUKIと申します。
    HTTPプロトコルによるファイル受信についてご質問させて下さい。
    ある競馬サイトより、テキストデータを取得しているのですが
    その際のプロトコルがHTTPである事を確認しました。
    現在はサイトに接続してテキストデータを取得しているのですが
    これをFTPなどのように、バッチ化して自動的に取得したいのですが
    その具体的な方法がまったくわかりません。
    お手数ではございますが、バッチ化の方法を詳しく教えて頂ければ
    幸いです。
    ちなみに使用しているパソコンのOSはWindowsXPです。
    宜しくお願い致します。

    1. Yukiさん。すいません。コメントみのがしてました。
      Webサイトのデータを取得したいのであれば色々とやり方は簡単なものから難しいものまでありますが、ひとまず「wget」などつかっていただくと良いのではと思います。

  3. ご丁寧にありがとうございます。
    おかげで、できました。

    これからも頑張って下さい。
    毎回毎回の記事を楽しみにしています。

    1. crowさん。うまくできたようでよかったです。

      「楽しみにしている」なんて言ってもらえると喜んでしまいます。更新頻度は低いですが、書き続ける予定ですので、よろしくお願いします。

  4. いつもありがとうございます。
    とて参考にしています。

    質問なのですが・・・・、「telnet http://www.google.co.jp 80」と入力しても
    ‘telnet‘は内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません

    となるのですが、どうしたら良いでしょうか?

    1. コメントありがとうございます。vistaか7をお使いですよね。ここの記事を参考にtelnetコマンドをインストールしてから試してみてください!http://www.atmarkit.co.jp/fwin2k/win2ktips/960vistelnet/vistelnet.html

      きちんとかいていなくてすいません。また何かあったらコメントいただけると嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。