HTTP/1.1 における Keep-Alive と HEAD の関係性について
HTTP/1.1 においては、HEAD リクエストの場合には Message Body を送信してはならないということにはなっているのですが、現実的には、Message Body をおくりかえしてくるアホなサーバーがおおい。たとえば Plack では Plack::Middleware::Head を明示的に使用していない場合、普通にやると HEAD でも message body をかえしてしまうだろう。
というわけで、HEAD で Message Body をかえしてくれるサーバーがおおいのだが、Message Body をかえされてしまうと、Keep-Alive しているときにこまる。次のリクエストとまじる。
この問題にたいするよい解決策はないので、HEAD リクエストを送信した後には connection を close してしまうのが、現実的な解決策だとおもった。
現実的には、現代のアプリケーションにおいては HEAD を発行するメリットはなく、If-Modified-Since を利用するなどして GET リクエストをなげればいいので、別にこれでよいという結論。
なのですが、なにかもっといい解決策がある人はいますか?
Published: 2010-10-25(Mon) 09:06