Reputation: 29498
I work with code written by other people, occasionally I am left somewhat confused and at these times Stack Overflow saves me. Please, save me again.
Our site allows people to upload images and later embed them within text in our site like so:
<img src="http://site.com/image_script.php?p=some_image_identifier"/>
My question is:
If the identifier, "p", does not lead us to an image should the server return "500" or "404"?
I would have thought it should be "404", but that's not what is happening right now.
Upvotes: 6
Views: 14179
Reputation: 46040
404 file not found is clearly the obvious decision.
Or 400, bad request because they requested an identifier that did not exist.
Upvotes: 0
Reputation: 532485
If the user enters the wrong script name, it should be 501 (or maybe 500). If they enter the wrong image identifier, it should be 404 since there is simply no corresponding resource.
Upvotes: 0
Reputation: 70001
500 is an error in fulfilling the request. So if the request processed fine and the file is not found, you should return a 404.
Upvotes: 19
Reputation: 625097
404 would be (imho) more appropriate. 500 indicates a server error. 404 indicates the resource isn't found, which is what you're describing. There is no server error, just an incorrect URL.
Upvotes: 3