Edit report at https://bugs.php.net/bug.php?id=64273&edit=1
ID: 64273
User updated by: php-bugs-2013 at ryandesign dot com
Reported by: php-bugs-2013 at ryandesign dot com
Summary: Requesting nonexistent files should produce HTTP 404
Not Found
Status: Assigned
Type: Bug
Package: Website problem
PHP Version: Irrelevant
Assigned To: tyrael
Block user comment: N
Private report: N
New Comment:
We would prefer not to use http://www.php.net/get/php-5.3.23.tar.bz2
/from/this/mirror style URLs. In MacPorts, each package (or "port") can
specify multiple URLs for each file to be downloaded. To that list are
added a number of MacPorts mirror servers located around the globe. When
a user wants to install a port, MacPorts pings each server and prefers
to download the files from the servers with the lowest ping times. Our
hope is this will result in faster downloads for users because they will
connect with servers closer to them.
Currently for PHP ports we list a handful of PHP mirror servers. If we
were to instead list only www.php.net, then our algorithm to determine the
fastest server would only take the ping time of www.php.net itself into
consideration. The end result might be that a user would be directed to
one of our mirror servers, even if a PHP mirror server might be closer to
them and deliver a faster download.
Previous Comments:
------------------------------------------------------------------------
[2013-02-22 16:46:51] [email protected]
Ryan, please use http://www.php.net/get/php-5.3.23.tar.bz2/from/this/mirror
style
urls.
These will give you the correct header and redirect you to the correct mirror
if
needed.
------------------------------------------------------------------------
[2013-02-22 10:59:32] [email protected]
that sounds like a good compromise
(funnyfact: I've checked and trying to download a nonexistent release on apple
like iTunes will result in an empty 404 page, so they not showing that nice 404
page for the direct downloads)
------------------------------------------------------------------------
[2013-02-22 10:44:32] php-bugs-2013 at ryandesign dot com
I have no objection to you making it easier for users to find your software on
your web site. But please do so in a way that does not increase the support
burden
for people trying to help your users install your software, namely me and other
people who maintain PHP in package management systems.
One solution would be to serve up a custom 404 page that says "The file you
requested was not found; go *here* for a list of available files," or some
other
wording for directing the user to the Releases page. Or even put links to the
latest releases on the 404 page. See how Apple does their 404 page:
http://apple.com/404notfound
------------------------------------------------------------------------
[2013-02-22 10:27:49] [email protected]
Hi,
it seems that it is/was an intentional decision so that the it is more
convinient
for the humans to find what they are looking for when they request a
distribution
which isn't there:
http://git.php.net/?p=web/php.git;a=blob;f=error.php#l120
fixing the problem reported here would be trivial, but it requires a decision
which I don't wanna take on alone.
------------------------------------------------------------------------
[2013-02-22 09:04:39] php-bugs-2013 at ryandesign dot com
Description:
------------
Requesting a nonexistent file from the network of PHP mirror servers should
product an HTTP 404 Not Found error. In fact it produces an HTTP 302 Found
redirect to a URL that produces an HTTP 200 OK code. This makes automated
download
systems think that the download was successful when it really was not. For
example
here is the type of problem this causes for the MacPorts project:
https://trac.macports.org/ticket/38162
Test script:
---------------
curl -I -L http://uk.php.net/distributions/php-5.3.222.tar.bz2
Expected result:
----------------
HTTP/1.1 404 Not Found
Date: Fri, 22 Feb 2013 08:53:01 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-language: en
Set-Cookie: LAST_LANG=en; expires=Sat, 22-Feb-2014 08:53:01 GMT; path=/;
domain=.php.net
Set-Cookie: COUNTRY=USA%2C72.183.101.32; expires=Fri, 01-Mar-2013 08:53:01 GMT;
path=/; domain=.php.net
Status: 404 Not Found
Content-Length: 4173
Connection: close
Content-Type: text/html;charset=utf-8
Actual result:
--------------
HTTP/1.1 302 Found
Date: Fri, 22 Feb 2013 08:38:45 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-language: en
Set-Cookie: COUNTRY=USA%2C72.183.101.32; expires=Fri, 01-Mar-2013 08:38:45 GMT;
path=/; domain=.php.net
Location: http://uk1.php.net/releases/
Connection: close
Content-Type: text/html; charset=utf-8
HTTP/1.1 200 OK
Date: Fri, 22 Feb 2013 08:38:45 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-language: en
Set-Cookie: COUNTRY=USA%2C72.183.101.32; expires=Fri, 01-Mar-2013 08:38:45 GMT;
path=/; domain=.php.net
Connection: close
Content-Type: text/html;charset=utf-8
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64273&edit=1
--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php