プロが教えるわが家の防犯対策術!

HTTPの持続的接続はいつきられるのか?

現在自分はHTTPプロトコルの勉強をしているのですが、疑問に思った点があります。
それはHTTP1.1には、持続的接続をする機能があるのですが、これがどのようなタイミングできられるのかがわかりません。
自分の調べた感じだと、ServerないしはClientがHTTPプロトコルのConnectionラベルにcloseと書きこんだ場合に、持続的接続はきられる物だとおもいました。
しかし、Wiresharkなどで実際に流れているパケットをみるに、明示的にこのCloseが書き込まれることはむしろ稀です(なのに通信は以後、行われません)。
なので他にもなにか持続的接続を終了するフラグのようなものがあるのではないかと考えましたが、それがなんなのかがわかりません。
よろしければご回答ください。お待ちしております。

A 回答 (3件)

http://www.studyinghttp.net/connections#Keep_Alive
で、RFCを抜粋して解説していますので、参考になると
思います。

要は「どんな時でも転送接続を切断する事ができる。」です。
切断するために「Connection: close」を送信する必要もありません。

たいていは、サーバから切断するケースが多いと思います。
例えばサーバで1000台の端末からのコネクションを全て維持するには
相当なリソース(メモリ等)を必要としますから、
最大端末接続数を制限して古いコネクションを切断したり、
一定時間以上通信のないコネクションを積極的に切断したり
するWebサーバが多いと思います。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
<<要は「どんな時でも
そうだったんですか、そういう仕様だったんですね。勉強になりました。ありがとうございます。

お礼日時:2010/08/23 05:22

>この機能がHTTPの仕様と考えられ


考えられているのではなく、これが規約(=プロトコル)です。

>機能がサーバに備わっていると、仮定して通信している
仮定でなく、現実的にサーバーにおいて最大セッション数やタイムアウト値を設定しています。
もしも設定していないサーバ存在するとすればリソースが枯渇して応答不能になるので成り立ちません。
    • good
    • 0
この回答へのお礼

何度もお付き合いいただきありがとうございます。
<<考えられているのではなく、
これがプロトコルだったんですか。どうもリファレンスを読むのは初めてなので、勘違いをしていました。ありがとうございます。

お礼日時:2010/08/23 05:25

勉強をしているのならRFCを読んでください。



質問者殿の疑問の答えが書いてありますよ。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

RFC(http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616 …を読ませていただきました。
localicaさんのおっしゃている答えとは、
<<現実的な考察
についてのことでしょうか?
だとすれば現在のHTTP1.1接続において、クライアント、サーバともにこの機能がサーバに備わっていると、仮定して通信している。つまりこの機能がHTTPの仕様と考えられ、通信しているのがこのwwwの世界においての現状ということになるのでしょうか?
何度もおつきあわせしてしまい申し訳ありませんが、よければお返事をください。

お礼日時:2010/08/20 00:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!