Fiddler's Streaming Mode
Introduction
By default, Fiddler operates in Buffering Mode for most responses. In Buffering
Mode, Fiddler buffers HTTP(S) responses completely before returning them
to the client. This gives the Fiddler user the opportunity to modify the response before the client
receives it.
What is streaming mode?
When in streaming mode, Fiddler will return response bytes to
the client immediately, as it reads them from the remote server. This is
primarily important for low-level network timing scenarios, because most web
browsers (Internet Explorer, Firefox, etc) will parse partially-downloaded HTML
pages and begin downloading needed resources (e.g. CSS, JS, etc) in parallel,
even before the remote server has finished delivering the HTML. In some
cases, this leads to a measurable performance improvement.

Streaming mode is also useful in some other cases,
particularly when visiting Internet Radio sites that deliver a never-ending stream
of MP3 data. An audio stream, by definition, is never complete,
so Fiddler's attempt to buffer it completely will always fail.
Automatic Streaming Mode
Fiddler will automatically stream responses of video/* or
audio/* types. You can control this option by clicking Tools | Fiddler
Options, then unchecking the "Automatically stream audio and video" option at
the bottom of the list.
Enabling Streaming Mode
You can configure Fiddler to stream all HTTP(S)
responses.
In Fiddler 2.2.2 or later, you can simply click the
"Streaming" button in the Fiddler toolbar:

In older versions, in the Fiddler Timeline tab, right-click the transfer timeline and
check the "Enable Fiddler Streaming" option.

Alternatively, you can enable streaming on a per-session basis
by setting the bBufferResponse property to false
on the Session object. Note that you must set this property in
FiddlerScript's OnBeforeRequest handler or
IFiddlerExtension's
IAutoTamper.AutoTamperRequestBefore or
IAutoTamper.AutoTamperRequestAfter handler.
Streaming mode is available in Fiddler v2.1 and later.
Session handling in Streaming Mode
For sessions in streaming mode, response breakpoints will not
be triggered, and changes to the response headers or body will not be seen by
the client.
Note to Developers: IAutoTamper::AutoTamperResponseBefore is
the last event that fires on a streamed session, after the response data has
already been returned to the client.
Stated another way, this means that AutoTamperResponseAfter and FiddlerScript's
OnBeforeResponse are never fired for streamed bodies.
< Back to Help Homepage
©2012 Eric Lawrence
Ad by Google
|