About
もうひとつの hiromasa.zone。-
Recent Comment
- 最近の WordPress 的な写真
(2)
07/26 Eternal-tears
07/26 ひろまさ
- WordPress 3.0 と プラグインアクション・フィルターフックへのクロージャ渡し
(1)
08/20 power source*
- WordPress Related Post for Japanese 1.50 RC リリース
(5)
07/14 ワタシの今の環境を晒してみるよ - LOVE!?
- WordPress の MySQL バックアップ (8)
- [USO]WordPress 検定試験 - 解答編
(4)
08/16 まさかず
08/18 ひろまさ
- 最近の WordPress 的な写真
(2)
Kyodeki
Category
-
Random Post
WordPress
















Web で楽しく遊ぶための知識(3) – TCP/IPネットワークアプリケーションとブラウザ
てなわけで、3回目です。
前回は、
という話でした。
インターネット上の通信は、TCP/IP というプロトコルを使い、インターネット上ユニークなIPアドレスを元に、世界中に配置されているホストに接続する。 Web に関して言えば、接続先の Web サーバには httpd と呼ばれるサーバソフトウェアが動作して、ブラウザからの要求に応える。 httpd にはバーチャルホストという考え方があり、1つの IP アドレス(機械)で複数のホスト名をホスティングできる。
てなわけでしたが、今回は TCP/IP についてもうちょっとだけ。
自分で書いていてあれなのですが言葉に混乱が見られるので、まずひとつ。 インターネット上に存在するコンピュータ(PC、サーバ等々)を以下、"ホスト" と呼称することにします。 サーバとかクライアントとかって名称は、このホストに対する使い方、という扱いになります。 ホスト名といえば、 another.maple4ever.net 、とかです。
さて、ここからホスト同士の通信を、たとえばゼロから自分で実装しようと考えてみます。
まぁ手元にあるパソコン2台をなんとかつなげたいとして・・・。 最初は、AパソコンでボタンをおしたらBパソコンの画面になにかでるとか・・・。
当たり前ですが、信号のやりとりをするためになにか通信線が必要になります。 最近のパソコンには付いてないですが、こーいうのはプリンタポートを借りて実装するのが楽だったりするんですが、プリンタポート同士でパソコンを接続。 でもって、ソフトを書いて、プリンタポートの入出力を監視して、なんか信号きたら、画面に映すとか、ボタンが押されたら信号を出力するとか・・・。 2台ならいいけど3台にしたらどうしよう。。
投げ出すこと請け合い。 というわけで、こういった接続方式を決めてくれている規格の一つが TCP/IP で、多くのコンピュータが標準で採用しそれを実装しています。
ネットワークの規格というのは、いくつかの層で構成されていることが多く、TCP/IP も4層のレイアから成り立っています。
Wikipedia のリンク先に4層の解説があるのですが、 "Web で楽しく遊ぶ" 的には、注目点は最上位「アプリケーション層」
みたことのある名前が並んでいます。 くだけて言えば、4 層未満の階層はホスト同士の"接続"するまでの手順の既定です。 接続した後に何をするのかってのがアプリケーション層になります。
インターネットで動くアプリケーションをつくる人間は、アプリケーション層未満のことはそのインターフェース以外考えなくて済むようになっています。 接続経路に海底ケーブルつかっていようが、無線LAN があろうが、ネットワーク経路がどうなっていようが、アプリケーションは意識しません。 ただひたすら、"つなげ" と命令すれば、自分でなにもせずとも 3層以下がなんとかして接続してくれます。 プリンタポートで通信しようとしている世界から見れば雲泥の差です。
じゃー、ここでいうインターネットで動くアプリケーションってなんだっていえば、Firefox などの Web ブラウザ。 Thunderbird などのメールクライアントがそれにあたります。 メッセンジャーとかもそうですね。
TCP/IP 的に言えば、Firefox はアプリケーション層 HTTP 、SSL、FTP、Gopher、SOCKS に対応した通信アプリケーション、ということになります。
これらアプリケーション層アプリケーション(?) は、みんなが使えるようにしたほうが便利なものについては、その仕様が RFC という文書で規定されています。
もちろん、自分でアプリケーションを設計して動作させることもできます。 たとえば、ネットワークゲームであるとか、メッセンジャーサービスであるとかは、いろいろな会社が独自のアプリケーション層に設計したプロトコルです。
このアプリケーション層ですが実はつくりは非常に簡単で、基本的には文字列のやりとりだけの取り決めのものが多いです。 じゃー我らが Web。 HTTP というプロトコルはどんな風に実装されているかというと・・・
こういった文字列のやりとりをホスト間でしているだけです。 Firefox はこの会話ができるアプリケーションのひとつです。
200 OK。 200 とか、403 とか 500 とか・・・。 よくみる例のアレですね。
てなわけで HTTP 編に、続く。
# ネットワーク系はぼく詳しくないので、早々にすっとばすのであった。。