CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

HTTP実装(1)

TCPができたのでHTTPの実装に移ります。

PICNICの実装例もありますがHTTPがあればクライアント側に特別な制御ソフトを用意しなくてもWEBブラウザで制御できるということですね。
最終的には家の外からパソコンや携帯電話でエアコンなどの家電製品を制御・・・
・・・なんて言ってみただけで多分やらないと思いますが。

ここまでプロトコルの上位までくるとハードウェアなど遥か眼下に霞んでいます。
この辺は全く知識がなかったのですが調べてみると要は
TCP、ポート80番でクライアントからのGETメソッドにたいしてHTMLデータを返す』
と解釈しました。
実際、ブラウザとインターネットがどんなやり取りをしているのかと、
パケットモニタを起動した状態でたとえばGoogleに接続するとパソコン側から
こんなテキストが送り出されています

GET / HTTP/1.1..
Accept: */*..
Accept-Language: ja..
Accept-Encoding: gzip, deflate..
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)..
Host: www.google.co.jp..
Connection: Keep-Alive..
 :
 :

するとネットワーク側からこんなレスポンスが返って来ます。

HTTP/1.1 200 OK..
Cache-Control: private..
Content-Type: text/html;
charset=UTF-8..
Content-Encoding: gzip..
Server: GWS/2.1..
Content-Length: 1899..
Date: Thu, 14 Dec 2006 14:50:24 GMT..
 :
 :

とういことはボード内で「GET~なんちゃら」という文字列を受け取ったら
「HTTP/1.1 ~なんちゃら」という文字列を返せば良いのだなと。
でその後に続くHTMLデータでブラウザに文字や絵が出るのだなと。

それぞれのヘッダに含まれる文字列は受け取る側の動作を制御するパラメータのようですがそれらは一切無視することとします。