ボディの一部分を取得するとき。レジュームによる再DLとか。
応答は206 Partial Contentになる。ただし、apacheでcgi/ssiを使っていて、Centent-Lengthを返さない場合はRangeリクエストされても、200 OKでボディ全体を返す。
cgi/ssi でもアプリ側でContent-Lengthヘッダをつけたり、apacheのmod_deflateと組み合わしてContent-LengthヘッダをつければRangeリクエストにも対応する。
$ telnet localhost 80 HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Thu, 22 Jul 2010 01:28:39 GMT Server: Apache Last-Modified: Tue, 03 Mar 2009 08:31:07 GMT Accept-Ranges: bytes # bytes単位でRangeリクエストに対応してるのがわかる Content-Length: 4000 Connection: close Content-Type: text/html
$ telent localhost 80 GET / HTTP/1.0 Range: bytes=0-90 HTTP/1.1 206 Partial Content Date: Thu, 22 Jul 2010 01:31:33 GMT Server: Apache Last-Modified: Tue, 03 Mar 2009 08:27:25 GMT Accept-Ranges: bytes Content-Length: 91 Content-Range: bytes 0-90/4000 # 4000 bytes 中 0-90バイトを取得 Connection: close Content-Type: text/html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta