"Alan J. Flavell" <flavell@ph.gla.ac.uk> wrote in message
news:Pine.LNX.4.53.0312051543110.25622@ppepc56.ph. gla.ac.uk...[color=blue]
> On Fri, 5 Dec 2003, Harlan Messinger wrote:
>[color=green]
> > It isn't open to personal discretion.[/color]
>
> Hmmm...
>[color=green]
> > An error in data input to the
> > application is not an HTTP communication error.[/color]
>
> In the WWW *model* that we're discussing here, there _is_ no
> "application" as such: there is a client, and it communicates with a
> server black box by presenting an opaque token (the URL). The error
> as communicated by HTTP is the final result of presenting that opaque
> token to the black box.
>
> Your "application" is no more than an internal detail of the server
> implementation, as far as this WWW model is concerned.
>
> I stand by my conclusion that if the server decides that a well-formed
> request has been presented, but no productive content has been found
> for fulfilling that request, then 404 is an approprate status return.[/color]
I think it's hard to argue that "not found" includes the case of "found, but
the resource that was found wishes it hadn't been" or "found, and wants to
send a response to the user, but wants to pretend that that response had
been pulled out of the server's hind quarters rather than having been
generated by the resource".
I'm not talking about *all* cases where an error was found by a process
sitting on top of the web server rather than by the web server itself. For
example, if you've got a content management system sitting on top of Apache
or IIS, and ask the CMS for a non-existent page:
http://www.cms.com/cms-process?page=108452
then the process *ought* to send 404.
[color=blue]
> With, of course, appropriate body content to explain the situation.
>
> The onus is on any WWW-conforming web client[1] to present that body
> content to the client user.
>[/color]
Actually, here's another approach to the question: what practical difference
would you expect in the result if a 404 was returned instead of a 200 in
response to invalid form data entry, if you are sending a body back with the
response either way? There ought to be a *point* to sending a 404. What
would you expect the browser to do differently? Why?