Last modified: 2014-08-11 20:55:11 UTC
Please see below the transcript of the failed HTTP 1.1 session with upload.wikimedia.org. The problem appears to be that the server upload.wikimedia.org doesn't properly process absolute URI. Normally clients send it relative URIs. I got this example with misconfigured proxy server. HTTP 1.1 specification demands that clients send absolute URIs to proxies, but my proxy accidentally didn't convert URI absolute->relative. However, HTTP 1.1 specification says that HTTP 1.1 servers "MUST accept the absoluteURI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies", see here http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html This is a deviation of upload.wikimedia.org from the HTTP 1.1 specification which needs to be fixed. --- failed HTTP session --- GET http://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Pizda.svg/100px-Pizda.svg.png HTTP/1.1^M Host: upload.wikimedia.org^M Proxy-Connection: keep-alive^M Cache-Control: max-age=0^M Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8^M User-Agent: Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36^M Accept-Encoding: gzip,deflate,sdch^M Accept-Language: en-US,en;q=0.8,ru;q=0.6^M ^M HTTP/1.1 404 Not Found^M Content-Type: text/html; charset=UTF-8^M X-Varnish: 791003890, 1369041883^M Via: 1.1 varnish, 1.1 varnish^M Content-Length: 279^M Accept-Ranges: bytes^M Date: Wed, 12 Jun 2013 03:10:50 GMT^M Age: 0^M Connection: keep-alive^M X-Cache: cp1026 miss (0), dysprosium frontend miss (0)^M Access-Control-Allow-Origin: *^M ^M <html> <head> <title>404 Not Found</title> </head> <body> <h1>404 Not Found</h1> The resource could not be found.<br /><br /> Regexp failed to match URI: "http:/upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Pizda.svg/100px-Pizda.svg.png" </body> </html>
*** Bug 53455 has been marked as a duplicate of this bug. ***
This is introduced in: bug 32864, where all multiple slashes are collapsed. With absolute URIs this causes problems, since it collapses http:// into http:/