Hi all,

Having had no objections to anything in the first draft, I have posted draft 2 of the 1.6 spec:
http://www.ebi.ac.uk/~aj/1.6_draft2/documents/spec.html

Mostly this comprises clarifications and fixes (e.g. a diagram for exception handling) but there is one clarification I would like feedback on - HTTP status codes. Apologies for the lengthy explanation below...

DAS 1.53 already specifies the X-DAS-Status header to describe DAS error conditions, but does not say how these relate to HTTP status codes. The issue is confused because some of the X-DAS-Status codes chosen match "equivalent" HTTP statuses (e.g. 400 bad request == 400 bad DAS command) while others do not (401 unauthorized == 401 bad dsn). Until fairly recently ProServer actually put the X-DAS-Status codes as HTTP status codes, but I changed this behaviour as it can result in misleading error reporting by clients.

When I came to clarify how DAS status co-exists with HTTP status for 1.6, I realised that it is open to interpretation. One view is that HTTP statuses describe -only- the transport layer, and as such you always use HTTP 200 OK unless there is a problem in the transport layer. The HTTP spec thus retains its meaning. A second view is that the meaning of the HTTP codes can be changed as we don't use the HTTP features that rely on them (mainly authentication). A third view is that DAS statuses should be seen as more descriptive versions of existing HTTP statuses (e.g. 401 bad dsn is a more descriptive version of 400 bad request). The 400 and 500 statuses as described in the HTTP spec do not preclude this interpretation.

To speak for what ProServer does, it used to take the second view, and now takes the first view. I am wondering whether a middle-ground (the third view) strikes a better balance between compatibility with old DAS clients (which don't check X-DAS-Status) and HTTP (which requires 401 unauthorized etc).

Please let me know what you think about the approach taken in the draft.

Cheers,
Andy
_______________________________________________
DAS mailing list
[email protected]
http://lists.open-bio.org/mailman/listinfo/das

Reply via email to