On Dec 9, 2009, at 11:52 AM, Jared Gisin wrote:
> I’m writing a HTTP server that exposes various resources as an API. Unless 
> I’m missing something, twisted’s HTTP protocol implementation is in 
> twisted.web.http.
>  
> The problem with this package is that it’s inexplicably wrapped up in HTML. 
> HTML has nothing to do with HTTP as a whole. Sure, HTML is often what HTTP 
> requests return, but there’s no reason why it should nor is there any RFC 
> that says it should. HTTP request can return anything.
> 
> The software I’m writing is a programmatic interface. One never uses a web 
> browser, so things such as displaying tracebacks 
> (twisted.web.util.formatFailure) in HTML format is completely wrong. When 
> implementing HTTP, why assume the client always wants HTML. It seem 
> completely wrong from these modules and libraries to be so full of HTML 
> output. HTML output should be provided as a separate config or option for 
> twisted.web. In this case, why not just dump the traceback directly to the 
> HTTP entity-body? As a consumer of twisted.web, I  should not have to battle 
> with the hard-coded HTML output of this library. If I want the library to 
> dump things in HTML output, I should have an option to tell it to do that 
> (and I should be able to better customize the HTML), but I should not get 
> HTML by default.

Customizability is great, and certainly error pages should really not be 
hard-coded at all. However, the default of returning HTML descriptions of 
errors is a good default, and should remain thus. There's usually two cases of 
interest:

1) A program is responding to the error. In that case, it will use the HTTP 
result code, and not care what the content is at all.
2) A human is reading the error message. At least 99% of the time, this will be 
happening through a web browser. They understand HTML. 

I'd expect your program to be in case #1, although I don't know if you have 
some need to parse out the particular tracebacks for some reason?

James
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to