[CentralOH] Web Server Response

William McVey wam at cisco.com
Mon Aug 11 23:08:57 CEST 2008


On Mon, 2008-08-11 at 14:00 -0400, Mark Erbaugh wrote:
> I'm working on a Python web server that allow users to update a database
> using a browser.  It's possible that the user could submit a database
> update that is disallowed by the database server, i.e. deleting a row
> that is a referenced by a foreign key or inserting a duplicate key.
> 
> Is there an HTTP status code that can be used for the response?  I could
> use 400 (bad request), but is there a better choice?

Note that error code 400 is used to convey that the server was unable to
parse or otherwise understand the request. It's not a generic "failure"
because the request was "bad". Some error codes that seem like they
might be appropriate include:

      * 401 Unauthorized
      * 403 Forbidden
      * 405 Method Not Allowed

That last one should probably only be used if your service is truly a
RESTful interface, in that each resource (e.g. a row in the table) has
it's own URI. Presumably this would be in response to a POST or DELETE
method type, and your reply would indicate that only 'GET' is
acceptable.

These error codes are all defined in section 10 of RFC 2616 defining
HTTP/1.1 (viewable at
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10 ).

  -- William



More information about the CentralOH mailing list