• ベストアンサー

GETの処理完了までに時間がかかる。

Socketを利用してWEBページのソースコードを取得する物を作成しています。 https://gist.github.com/74f3d308f2a56ec53f6a 46行目の"end"が出力されるまでに数分かかります。 処理が終わればすぐに"end"を出力したいです。 改善方法と原因を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

HTTP 1.1はKeep-Alive接続がデフォルトだからではないでしょうか。 Keep-Alive接続では,複数のリクエストを連続して投げられますが, Connection: Close 付きのリクエストを送信するか,サーバー側がタイムアウトするまで,接続は切断されません。 # 動的生成ページでは,Keep-Alive接続をサポートしない場合もあります。 なので,リクエストヘッダに Connection: Close を追加してみてはどうでしょうか。

devman
質問者

お礼

writer.write("Connection: Close\r\n"); これを23, 24行の間に追加するとすぐに"end"を出力することができました。 HTTP 1.1などは気にしておらず自分では解決できそうにありませんでした。 ありがとうございました。

関連するQ&A