http1.0 内部ローカルネットワーク経由のアクセス時間について調べています。http サーバーを 127.0.0.1:30000 にセットアップし、curl にサーバーへのアクセスを許可します。(http サーバーコードはhttp://www.java2s.com/Code/Java/Network-Protocol/AsimpletinynicelyembeddableHTTP10serverinJava.htm に実装されています。これは非常に単純なプログラムです。)
curl -I -0 "http://127.0.0.1:30000/"
興味深いのは、最初のアクセスだけに時間がかかることです。1 回目のアクセスは約 5.0msec、2 回目のアクセスは 0.7msec かかります。次のアクセスはわずか 1msec 未満です。
WireShark でパケットを覗いてみると、サーバーからの [PSH, ACK] パケットがほとんど必要な時間を占有していることに気付きました。なぜこのような違いが生じるのでしょうか。
(固定接続で2回目のアクセスが速いのではないかと疑っていましたが、http1.0環境で実験したところ、固定接続はhttp1.1で定義されています)