クリプキクローネ日記帳

ある種の音楽と数学とランニングはミニマルなところが似ていると思う。

インターネットプロトコルがわかる [加地真也(著)]

インターネットプロトコルがわかりました。

少し。



TCP/IPの初心者向けの本はどれも似たようなことが書いてありますが、
この本は題材をHTTP, MIME, SMTP, POP3, IMAP4, FTPに絞って詳しめに書かれていたのでおもしろかったです。

【HTTP】
お馴染み 404 Not Found を見つけると嬉しくなります。

キャッシュの管理は各サーバーが勝手にやっているのかと思っていたので、
リクエストヘッダのIf-Modified-Sinceフィールドとかはなるほどと思いました。
ReferrerフィールドとかUser-Agentフィールドはアクセス解析でお馴染みですね。

GETメソッドでURIにリクエスト内容を連結して送るとPOSTメソッドのようにデータ送信ができる。
小手先だなー。

レスポンスを待たずにリクエストを連続送信できるパイプラインすごく大事ですね。
大きいデータを途中から再ダウンロードできるデータレンジの概念も大事だけど、
データの一貫性とかキャッシュの管理とか、ややこしい話になりそう。

プロキシもセッションの永続性とかキャッシュとかで思っていたより厄介な話が多そう。


【MIME】
MIMEについては、メールのプロトコルだということ意外何も分かっていなかったので勉強になりました。
まさかボディに格納するデータを7bitのASCII文字にエンコードするなんて、なんて昔の名残り仕様なんだ…。
Content-typeはtext/plainとかimage/jpegとかいろいろあるけど、
大抵は根っこはmultipartで、その下にいろいろぶら下がるツリー構造になるらしい。

複数のファイルを表すmixedの他に、同じ内容をtextとhtmlで提供する場合なんかに使うalternativeとか、
HTMLの部品データなんかを表すrelatedとかがある。おもしろい。

もっともこの辺のエンコーディングはすべてボディに関する話で、
メールのタイトルなどヘッダ部を日本語にする場合にはまた別のルールになるのでややこしい。
どんだけ英語至上主義なんだと思います。
英語圏で生まれたプロトコルなので当たり前なんですけど。

あと本文にも書かれてたけど、ヘッダにBCCがあるのがちょっと怖いと確かに思ってしまった。
なければ届くはずないからあるべきなんだけど、Blindなのに!みたいな。


【SMTP】
こうして見るとSMTP地味だなー。
シンプルでよくできてるということなんだろうけど。
開封通知のやり方が2つあって、メーラー(MUA)が勝手に特殊応答メールを返すパターンと、
サーバー(MTA)がエンベロープにDSN(Delivery Status Notification)を付与するパターンがある。
前者はユーザーが開いたことが分かるけど、後者は届いたことしか分からない。

SMTP-AUTHは認証付きのSMTP。聞いたことある。
POP before SMTPはSMTP-AUTHが普及するまでの代替案で、
POP3でログインしてから一定期間のみ同一IPアドレスからSMTP接続できる。


【POP3】
最後がPじゃなくてわかりやすいプロトコル名。
メールサーバーにログインしてメールを受信する。


【IMAP4】
Internet Mail Access Protocolの名のとおり、メールにアクセスするだけであって、
ダウンロードするとは言っていない。
サーバーでメールをすべて管理するためのプロトコル。
サーバー上でフォルダ構成を管理したり、メールを検索したり、容量制限をつけたり、いろんな操作ができる。
IDLEコマンドでセッションを維持することで、メール受信通知ができる。
ローカルにミラーを持って同期することを想定してプロトコルが設計されている。
でもブラウザでやる場合はHTTPでもいい気がするし、棲み分けどうなんでしょう。


【FTP】
FTPきたー。
昔はHTTPのパチモンかと思っていた時期もありましたが、由緒正しきプロトコルです。
ファイル転送プロトコルなのにファイルシステムに依存しないのはいいですね。
転送の状態を管理するコントロールコネクションと、ファイルそのものをやりとりするデータコネクションがある。
2系統あるのは他のプロトコルと違って特徴的。


【その他】
セキュリティまわりはこの本が書かれた(2001年)から盛んになった模様。
HTTPのDigest認証とSMTP-AUTHとPOP3のAPOPコマンドはいずれも
サーバー側がチャレンジを投げてレスポンスをチェックするCRAM(Challenge-Response Authentication Mechanism)です。
クライアントはチャレンジとパスワードで演算した結果をレスポンスとしてサーバーに返す。

SSL/TLSはお馴染み公開鍵暗号とデジタル署名。

S/MIMEも公開鍵暗号とデジタル署名だけど、ボディ部だけなので注意。
メールタイトルとかに大事なことを書いてはいけない。


インターネットプロトコルは似たような概念にいろんな名前がついてるので混乱します。
本が書かれたのが思ったより古くて(2001年)これは意味なかったかなと思いましたが、
読んでみると基本的なことがしっかり書かれていていい本でした。
  1. 2017/07/22(土) 23:32:14|
  2. | トラックバック:0
  3. | コメント:0
<<デザインパターンによるJava実践プログラミング [Stephen Stelting, Olav Maassen(著)] | ホーム | モータ制御 the ビギニング [西田麻美 (著)]>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://myumbrella.blog42.fc2.com/tb.php/382-f9f4a6bf
この記事にトラックバックする(FC2ブログユーザー)