Michael Robinson
Michael Robinson

Reputation: 29498

Should I Return "500" or "404" if a Requested Image is not Found?

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

Answers (4)

Petah
Petah

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

tvanfosson
tvanfosson

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

&#211;lafur Waage
&#211;lafur Waage

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

cletus
cletus

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

Related Questions