[Twisted-Python] HTML shoudl not be baked into twisted.web HTTP implementation
konrads at smelkovs.com
Wed Dec 9 16:54:38 EST 2009
I think that the days when one line logger ala syslog is useful are
nearing its end. Html in logs looks only ugly if log consumer makes
2009/12/9, Valeriy Zamarayev <valeriy.zamarayev at gmail.com>:
> 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
> Hi All,
> I want to second Jared's point. In my case, the responses from web
> including the body, often end up in log files. HTML looks pretty ugly
> Though this is a minor point for me in the otherwise great Twisted
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
Nosūtīts no manas mobilās ierīces
Applied IT sorcery.
More information about the Twisted-Python