Edit report at https://bugs.php.net/bug.php?id=66856&edit=1
ID: 66856 User updated by: eldmannen+php at gmail dot com Reported by: eldmannen+php at gmail dot com Summary: Failed manpage lookups return 200 OK Status: Assigned Type: Bug Package: Website problem PHP Version: Irrelevant Assigned To: levim Block user comment: N Private report: N New Comment: Jacob, > A 404 is intended to be delivered should an application resource cannot be > located by the server, not when a search returns no results. No, this is not limited to application resources. This is for any HTTP resource. The HTTP protocol doesn't care what underlying mechanism handles the request, if it is a file on the file system or a application. A resource was requested, if the resource is not found, it should return 404. It is true that 404 should not be returned upon a search which returns no results, however when you visit the resource example.net/foo you are *not* asking to perform a search, you are asking to retrieve a resource. > GitHub and Wikipedia's approach are slightly different to PHP.net in my > opinion as they render a straight 404 whereas PHP.net returns result sets > based on a list possible matches - so technically, the resource is found. No, the resource is not found. Instead you are served another page (which in this case performs a search). > If we return a 404, we are essentially telling the browser that the "search > results functionality" isn't available. No, we are telling the browser "the resource you requested was not found, but there are some search results that might help you". Previous Comments: ------------------------------------------------------------------------ [2015-01-03 14:21:41] eldmannen+php at gmail dot com www.example.net/foo is a HTTP resource. If you request a resource, and it is not found then it should return a 404. That you do a search when requesting a resource which was not found is a different thing. I request a resource. The resource was not found. The server should return 404. The server may optionally assist me by performing a search, however that does not change the fact that the resource was not found. When I entered www.example.net/foo, I did *not* peform a search, I requested a resource. If the resource was not found, it must return 404. You are right that a search should not return 404, but I requested the resource /foo, I did not query /search?query=foo in which case you are right it should return a 200 OK. ------------------------------------------------------------------------ [2015-01-03 13:14:16] cmbecker69 at gmx dot de > so technically, the resource is found. IMHO, the *requested* resource is not found, for instance, when <http://php.net/doesntexist> is requested. > If we return a 404, we are essentially telling the browser that > the "search results functionality" isn't available. Note, that it is something different when you type "doesntexist" in the searchbox. You may also compare the difference in the "final" URI: <http://php.net/manual-lookup.php?pattern=doesntexist&scope=quickref> <http://php.net/manual-lookup.php?pattern=doesntexist&lang=en&scope=404quickref> The value of the scope parameter already hints at a "404". ------------------------------------------------------------------------ [2015-01-03 12:49:31] [email protected] GitHub and Wikipedia's approach are slightly different to PHP.net in my opinion as they render a straight 404 whereas PHP.net returns result sets based on a list possible matches - so technically, the resource is found. If we return a 404, we are essentially telling the browser that the "search results functionality" isn't available. ------------------------------------------------------------------------ [2015-01-03 12:41:41] cmbecker69 at gmx dot de > A 404 is intended to be delivered should an application resource > cannot be located by the server, not when a search returns no > results. Correct. However, in this case the user doesn't intend to search. Compare the respective behavior of php.net to Github[1] or Wikipedia[2], for instance. [1] <https://github.com/doesntexist> [2] <http://en.wikipedia.org/wiki/Doesntexist> ------------------------------------------------------------------------ [2015-01-03 12:14:48] [email protected] A 404 is intended to be delivered should an application resource cannot be located by the server, not when a search returns no results. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=66856 -- Edit this bug report at https://bugs.php.net/bug.php?id=66856&edit=1 -- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
