Transfer-Encoding: chunked

HTTP 1.1 supports chunked data transfer in which a server breaks the complete response into smaller chunks and sends them in series.

Advantages:

  • faster for large, dynamic responses (no need to buffer the whole page before sending, good for generating on the fly data)
  • server can start transmitting data before it knows the size of content , and browsers may incrementally render the page (faster page loading)
  • allows a server to maintain an HTTP persistent connection for dynamically generated content
  • ability to send additional headers after the message body (e.g. for digital signing)

Disadvantages:

  • small overhead (adding chunk sizes)
  • no file download resumes
  • download dialogs might not show accurate progress bar

Apache httpd (1.3 and 2.X) by default sends chunked data for static files, and nginx supports chunked transfer since 1.3.9 (before that use ngx_chunkin module). All HTTP 1.1 clients must be able to receive chunked messages.

Comments are closed.