Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using "transfer-encoding: chunked", how much data must be sent before browsers start rendering it?

All browsers wait for some content (and sometimes some amount of time, too) before they start rendering a partial http response you have flushed to it across the network - but how much?

like image 806
ecmanaut Avatar asked Jun 04 '13 03:06

ecmanaut


People also ask

How does transfer encoding chunked work?

In chunked transfer encoding, the data stream is divided into a series of non-overlapping "chunks". The chunks are sent out and received independently of one another. No knowledge of the data stream outside the currently-being-processed chunk is necessary for both the sender and the receiver at any given time.

How do I enable chunked transfer encoding?

To enable chunked transfer encoding, set the value for AspEnableChunkedEncoding to True in the metabase for the site, the server, or the virtual directory that you want to enable chunked transfer encoding for. By default, the value is True, and it is set at the Web service level.

What is HTTP chunk size?

The chunk size is always given as a hexadecimal number. If that number is not directly followed by a CRLF, but a ; instead, you know that there is an extension. This extension is identified by its name ( chunk-ext-name ). If you never heard of that particular name, you MUST ignore it.

What is a chunked HTTP response?

Chunking is a technique that HTTP servers use to improve responsiveness. Chunking can help you avoid situations where the server needs to obtain dynamic content from an external source and delays sending the response to the client until receiving all of the content so the server can calculate a Content-Length header.


1 Answers

I did some research on this today with an url endpoint accepting letting me configure chunk sizes and intervals.

Mac:                       text/html:     image/jpeg:
curl 7.24.0                4096 bytes     
Firefox 17                 1024 bytes     1886 bytes
Chrome 26.0.1410.65        1024 bytes     1885 bytes
Chrome 29.0.1524.0         8    bytes     1885 bytes
Safari 6.0.4 (8536.29.13)  1024 bytes     whole file

Windows XP:
IE8                        256  bytes
Chrome 27.0.1453.94        1024 bytes
Firefox 21                 1024 bytes
Opera 12.15                128  bytes AND 3s have passed

Windows 7
IE9                        256  bytes

Windows 8:
IE10                       4096 bytes
like image 145
ecmanaut Avatar answered Oct 13 '22 08:10

ecmanaut