On 25 Aug 2011, at 15:48, Plüm, Rüdiger, VF-Group wrote: > For 2.3 the last one could be 3 state: > > off - Don't do anything about that > on - reply with 200 if misuse is detected. > optimize - Do sorts and merges and fill too small chunks between the ranges. > > Default for 2.3 would be optimize.
I don't know exactly how the PDF plugins work, but we might expect requests like: HEAD /foo HTTP/1.1 Host: xxx.example to learn the content length, followed by: GET /foo HTTP/1.1 Host: xxx.example If-Range: "bar" Range: bytes=0-4095,8384511-8388607,4096-8384510,8384512- (hoping to read the indexes at the start and end of the document first, then fill in the rest). A default that forces the clients back to seeing only the whole entity seems too strong, especially if httpd will now have better code to handle this case. Detecting misuse and handling that with a 200 still fine though. I expect that clients exist which would get confused at having small chunks filled in. For example, a client that expects either a multipart/byte-ranges response or a whole-entity 200 (because the server doesn't accept ranges). With the above “optimize”, the client instead gets a sorted and merged single-range response. Naive coding could have the client believe that it is seeing the whole entity rather than just a range. …yes, such a client is badly written but badly written clients can and do exist. If httpd punishes their users unduly, httpd itself may attract some blame. -- Tim Bannister – [email protected]
