[Twisted-Python] HTML shoudl not be baked into twisted.web HTTP implementation

Valeriy Zamarayev valeriy.zamarayev at gmail.com
Wed Dec 9 14:18:56 MST 2009


On Dec 9, 2009, at 19:34, James Y Knight wrote:
> 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?


Hi All,

I want to second Jared's point. In my case, the responses from web  
servers,
including the body, often end up in log files. HTML looks pretty ugly  
there.
Though this is a minor point for me in the otherwise great Twisted  
software!

Regards,
Valeriy





More information about the Twisted-Python mailing list