Last modified: 2011-07-06 20:32:00 UTC
RFC2616 "To allow for transition to absoluteURIs in all requests in future versions of HTTP, all 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." However, a requests made to bits.wikimedia.org with absoluteURIs result in 404 errors. For instance, nc bits.wikimedia.org 80 << EOF GET http://bits.wikimedia.org/fr.wikipedia.org/load.php?debug=false&lang=fr&modules=mediawiki.legacy.commonPrint%7Cmediawiki.legacy.shared%7Cskins.vector&only=styles&skin=vector HTTP/1.1 Host: bits.wikimedia.org EOF returns: HTTP/1.1 404 Not Found Server: Apache Content-Type: text/html; charset=iso-8859-1 X-Varnish: 2529204594 Via: 1.1 varnish Content-Length: 342 Date: Thu, 31 Mar 2011 12:25:27 GMT X-Varnish: 565360364 Age: 0 Via: 1.1 varnish Connection: keep-alive <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /fr.wikipedia.org/load.php was not found on this server.</p> <p>Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.</p> </body></html>
Problem with Varnish? CC Mark and Ryan.
Works for me: squidfarm:~ laner$ telnet bits.wikimedia.org 80 Trying 208.80.152.118... Connected to bits.pmtpa.wikimedia.org. Escape character is '^]'. GET http://bits.wikimedia.org/fr.wikipedia.org/load.php?debug=false&lang=fr&modules=mediawiki.legacy.commonPrint%7Cmediawiki.legacy.shared%7Cskins.vector&only=styles&skin=vector HTTP/1.1 Host: bits.wikimedia.org HTTP/1.1 200 OK Server: Apache X-Powered-By: PHP/5.2.4-2ubuntu5.12wm1 Cache-control: public, max-age=300, s-maxage=300 Last-Modified: Thu, 24 Mar 2011 04:29:21 GMT Expires: Thu, 31 Mar 2011 18:29:29 GMT Vary: Accept-Encoding X-Vary-Options: Accept-Encoding;list-contains=gzip Date: Thu, 31 Mar 2011 18:28:05 GMT X-Varnish: 2625373312 2624436905 Age: 215 Via: 1.1 varnish Content-Type: text/css Content-Length: 70124
From the headers I can see that Ryan is going through bits.pmtpa and Martin is going through bits.esams . However, I tried both, and got a 404 for both.
Putting this down to the configuration of the server/proxy and adding the necessary shell keyword. The following works on the secure server: (cat <<EOF GET https://secure.wikimedia.org/wikibooks/en/w/load.php HTTP/1.1 User-Agent: hexmode test Host: secure.wikimedia.org EOF sleep 3) | gnutls-cli -p 443 secure.wikimedia.org returns (after the certificate information): HTTP/1.1 200 OK Date: Thu, 31 Mar 2011 18:35:53 GMT Server: Apache X-Powered-By: PHP/5.2.4-2ubuntu5.12wm1 Cache-control: public, max-age=300, s-maxage=300 Last-Modified: Wed, 19 Apr 2006 15:15:00 GMT Expires: Thu, 31 Mar 2011 18:40:53 GMT Vary: Accept-Encoding X-Vary-Options: Accept-Encoding;list-contains=gzip Content-Length: 53 Content-Type: text/javascript Via: 1.1 secure.wikimedia.org /* No modules requested. Max made me put this here */
Removing "shell" keyword for things that aren't directly doable by shell users etc
Adding ops keyword
Removing shell keyword if exists