小学生でも分かるプロキシ講座(2)
小学生でも分かるプロキシ講座(1)「プロキシ」とは、いわば「特殊なブラウジングを行うために必要なモノ」です。では、どのように「特殊」なのか。プロキシを使うと
本来は直接的な「クライアント←→ウェブサーバー」というコネクションが「クライアント←→プロキシサーバー←→ウェブサーバー」という具合になりこのため一定の「匿名性」が確保される・・・と。
「どのように特殊なのか」をある程度深く理解するには、「通常のブラウジング」に関するある程度の理解が必要不可欠です。今回は「通常のブラウジング」を「リクエスト・レスポンス」という視点で見てみましょう。
本来は直接的な「クライアント←→ウェブサーバー」というコネクションが「クライアント←→プロキシサーバー←→ウェブサーバー」という具合になりこのため一定の「匿名性」が確保される・・・と。
「どのように特殊なのか」をある程度深く理解するには、「通常のブラウジング」に関するある程度の理解が必要不可欠です。今回は「通常のブラウジング」を「リクエスト・レスポンス」という視点で見てみましょう。
「通常のブラウジング」は「リクエスト」「レスポンス」から成立している。例えば。tokix.netトップページ(http://www.tokix.net/index.html)の実体とは、この世界の何処かにある「tokix.netサーバーマシン」のHDD内に存在するデータです。ブラウザのアドレス欄に上記URLを打ち込み「移動」を押す。ブラウザにtokix.netトップページが表示される。この時行われていることとは
- クライアント(閲覧者)がサーバーに対し「お前のトコの/index.htmlをよこせ」という意味の「リクエスト」を送信する
- tokix.netサーバーがクライアントに対して当該データを「レスポンス」として送信する
「PC同士の通信」を頭に描こうとする時、「電話による通話」ではなく「文通」をイメージすると良いと思います。PC1は「リクエスト手紙」をPC2に送り、PC2は「レスポンス手紙」をPC1に送る。・・・何が言いたいかと言えば、PC1とPC2がお互いに「相手の住所」を理解していなければ「文通」が成立しない。電話番号を知らない相手と電話で話すことは(向こうからかけてくれば)可能だが、住所を知らない相手と文通を行うことはできない。「住所」というのが「IPアドレス」であり、つまり「リクエスト・レスポンス」を行う二台のPCはお互いが「相手のIPアドレス」を知っている。
参考:小学生でも分かるIP抜き講座(1)このような仕組みで「リクエスト・レスポンス」が行われ、ウェブサーバーは「クライアントのIPアドレス」を知ることになる訳です。「サーバーがクライアントのIPアドレスを抜いている」と言うより「クライアントが自分のIPアドレスを自主的にサーバーに教えている」という表現の方が正しいかもしれません。
「コネクションを持つ二台のPCはお互いが相手のIPアドレスを知っている」という基本的なメカニズム。
クライアントからサーバーに送信される「リクエスト」の実体は、例えばtokix.netトップページをtokix.netサーバーに対してリクエストする場合だったら
| クライアント → www.tokix.net |
| GET /index.html HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Host: www.tokix.net |
| 大意: お前のトコの(※1)/index.htmlをよこせ |
※1
「リクエスト」では「GET」と「Host」に注目して下さい。上記リクエストの意味は「www.tokix.netの/index.htmlをよこせ」という意味です。「リクエスト」において、基本的には「宛先」と「Host」は同じであり(※2)、この連載ではこの場合「お前のトコの」という表現を使うことにします。
※2という感じです。
上記ならば両方とも「www.tokix.net」ですよね。
「ウェブサーバー」というのは「自分のHDD内にあるファイル(の内容)をリクエストに応じレスポンスとして送信する」を役割とします。例えば「www.tokix.net」に対して「Host」を「www.yahoo.co.jp」にしてリクエストを送信してもtokix.netウェブサーバーはどうしようもない訳です。
参考:初級CGIクラックガイド(4)このような「リクエスト」を受けるとtokix.netサーバーは以下のような「レスポンス」を行う。
| www.tokix.net → クライアント |
| HTTP/1.1 200 OK Date: Wed, 25 Dec 2002 09:00:00 GMT Server: Apache/1.3.9 (Unix) Content-Type: text/html <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html;charset=SHIFT_JIS"> <title>tokix.net - 毎週水曜更新</title> (以下省略) |
| 大意: /index.htmlはコレだ |
参考:User-Agentで掲示板荒らし
よく「サイト管理人にはクライアントが使用しているブラウザがバレている」というような記述を見ることがあると思います。実は「クライアントの使用しているブラウザ」というのは「クライアントが自己申告する情報」である。この事実を利用し一部の掲示板を荒らす方法について。
参考:アダルトサイトで学ぶHTTP基礎
「リクエスト・レスポンスとしてのHTTP」を「アダルトサイトを巡回する」という視点で書いています。「常識」のように言われる「アダルトサイト巡回時はJavaScriptを切れ」や環境変数について。
では、「インターネットオプション」「接続」でプロキシサーバーを設定した場合は「どのような」リクエストが「誰」に対して行われているのか。
小学生でも分かるプロキシ講座(3)
小学生でも分かるプロキシ講座(3')
小学生でも分かるプロキシ講座(4)
小学生でも分かるプロキシ講座(5)
小学生でも分かるプロキシ講座(6)

TrackBack
この記事へのトラックバック