【最終回】
第3章:インターネットを利用しよう
プロキシーを忘れずに
(00/07/14)
こんにちはnakkaです。最終回の今回はHTTPのクライアントを作ってみます。HTTPクライアントを作成する場合、社内から使うことも想定してプロキシーサーバーにも対応させる必要があります。
HTTPクライアントを作ってみる
HTTPを利用した簡単なプログラムということで、HTTPサーバーからHTMLファイルを受信するクライアントソフトを制作します。ただ受信しても仕方がないので、受信したHTMLファイルを解析して、リンクの一覧を表示するようにしましょう。リンクの一覧は“http://”や“ftp://”で始まるURLのリンクと、画像のリンク、メールアドレスを表示します。
HTTPの仕組み
HTTPとは、Webブラウザーなどでホームページを閲覧するときに使用するプロトコルです。HTTPサーバーとのやり取りは非常に簡単です。クライアントがファイルのリクエストを送信すると、HTTPサーバーがヘッダーとデータを送信してきて、HTTPクライアントがデータを受信し終わると切断してセッションを終了するという流れになっています。
HTTPサーバーにリクエストするには、“GET”というメソッドと取得したいファイル、さらにプロトコル名とそのバージョンを送信するだけです。
これだけ送ればHTTPサーバーから処理の結果、データのサイズ、データの更新日などのヘッダー情報と、実際のデータが送信されてきます。
HTTP/1.1 200 OK
Last-Modified: Sun, 19 Mar 2000 07:16:23 GMT
Content-Length: 1484
Content-Type: text/html
<HTML>
~
</HTML>
|
メールを送信するSMTPというプロトコルとの違いは、サーバーとあまり対話を繰り返さないことです。HTTPサーバーに接続できたらすぐリクエストを送信して、あとは受信するだけです。リクエストを送信する際にリクエストの終わりを示す改行のみの行を送信しないと、HTTPサーバーはそのまま待機した状態になり、データを受信できなくなってしまうので注意してください。
これまで述べた内容をふまえて、HTTPクライアントを作成しました。URLを入力して[Get]ボタンを押すとHTTPサーバーに接続してHTMLファイルを取得します。そして取得したHTMLを解析してリンクの一覧を作成します。一覧表示されているリンクを選択してダブルクリックするとそのURLをWebブラウザーで開くことができます。メールアドレスの場合はメールソフトが起動します。
プロキシー対応を忘れずに
HTTPで忘れていけないのがプロキシーです。プロキシーというのは、会社や学校などファイアーウォールで保護されたネットワークから、外部のホームページなどを参照をするときに中継を行うプログラムのことです。パソコンがファイアーウォール内にある場合、HTTPクライアントはどのホームページを取得するのにもプロキシーサーバーに対してリクエストを送ります。そして、プロキシーサーバーがそのリクエストをHTTPサーバーに送り、帰ってきたデータをHTTPクライアントに渡すようになっています。
プロキシーサーバーへのリクエスト方法は、HTTPサーバーにリクエストを行うときと大差ないのですが、取得するファイル名のところにURLを書くようになっています。この違いを除けば、あとはHTTPサーバーへ直接アクセスするのと全く同じです。
GET http://www.nakka.com/index.html HTTP/1.1
|
これで連載は終わりですが、いかがでしたか? あまり細かい部分に触れずに流れを大切にしてきたつもりです。この連載がみなさんの今後のオンラインソフト制作に役に立てば幸いです。私にとってもこの連載中はいつもと違う視点でソフトを作ることができましたし、私自身がリリースしているソフトの開発も進みました。最後まで読んでくれたみなさん、どうもありがとうございました。
(nakka)