#7581: Middleware accessing HttpResponse.content breaks streaming HttpResponse
objects.
---------------------------------------------+------------------------------
          Reporter:  mrmachine               |         Owner:  nobody           
                 
            Status:  new                     |     Milestone:  1.2              
                 
         Component:  Core framework          |       Version:  SVN              
                 
        Resolution:                          |      Keywords:  stream 
HttpResponse Content-Length
             Stage:  Design decision needed  |     Has_patch:  1                
                 
        Needs_docs:  0                       |   Needs_tests:  0                
                 
Needs_better_patch:  0                       |  
---------------------------------------------+------------------------------
Comment (by didditdoug):

 There is a bug in the function utils.text.compress_sequence provided in
 the patch. Because it never closes the zfile, it misses a few trailing
 bytes of output, causing invalid output. Some decompressors (e.g. many
 browsers) seem tolerant of this, but many (e.g. Googlebot, gunzip) are
 not. The fix is straightforward; patch to text.py attached. This also has
 a warning (feel free to exclude if you wish!) for users of the function
 that its compression performance is not as good as compress_string (though
 obviously it has other advantages). As a final note, in our local
 installation we use the Z_FULL_FLUSH option on zfile.flush(), with some
 penalty in compression performance, so that browsers can start rendering
 the streaming output immediately, without having to wait for further bytes
 to complete decompression. This may not be an appropriate change for all
 installations, so I didn't include it here, though it might be useful as
 an option.

 Hope this is helpful-

-- 
Ticket URL: <http://code.djangoproject.com/ticket/7581#comment:16>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to