The Network Inspector is Opera Dragonfly’s HTTP dashboard. It provides an overview of all HTTP requests such as images, scripts, and style, initiated by the primary webpage (primary HTTP request). The Network Inspector includes a visualization of the time and duration that such resources have been downloaded. This visualization provides a clear map of how to repair or improve script and usability performance.
The first tab of the Network Inspector is called Network log.
In the left column, each URI is preceded with an icon. This provides a visual cue about the resource's file type.
Each URI will be followed by the specific HTTP status code associated with it. When hovering the status code, an explanation of the HTTP status code is given.
The right column is a long panel with vertical lines. Each line marks 100 milliseconds. Thicker vertical black lines mark 1 second. For each resource line, a colored horizontal bar is displayed composed of three events:
- The start time when the URI is loaded,
- The request time (left end of the colored bar)
- The end time when the request has been completed. (right end of the colored bar)
Placing the mouse over the horizontal bar will reveal three values in a box for these events in milliseconds: Total duration, Request time and Response time. When the information has been loaded from the cache,
Cached: is displayed with the time in milliseconds.
There are two buttons on the toolbar just under Network log tab label. The first one pauses all subsequent HTTP requests. It becomes handy for a webpage using intensively XMLHttpRequest. The second one fits the network cascade view to the width of the window in order to avoid horizontal scrolling.
The Make Request tab is a tool for creating a custom HTTP request to a specific URI and obtain the HTTP response with or without the payload.
Opera Dragonfly makes it easy to precisely tailor an HTTP request by specifying the individual HTTP headers for each. When entering the URI in the URL box, the HTTP request is being crafted in the Request body box. The default proposed HTTP method is GET (In Opera Dragonfly 1.0, only the HTTP GET method is available). The default Opera HTTP headers are written in the Request body. They can be changed for testing web servers with different type of HTTP requests. For example, it is possible to create an HTTP request that would enforce
GET / HTTP/1.1 Host: www.opera.com User-Agent: Opera/9.80 (Macintosh; Intel Mac OS X 10.6.6; U; fr) Presto/2.7.62 Version/11.01 Accept: application/xhtml+xml
When clicking on the Send request button, the HTTP request is sent and in the Response box appears the answer of the server as communicated over the network.
The third panel provides options for fine-tuning the browser behavior with regards to HTTP requests.
When testing HTTP requests, it is often important to disable all sources of caching. When caching is disabled, the Opera browser will bypass all caching, always doing full reloads from the server.
Content tracking behavior
This setting controls if the bodies of responses will be available to Opera Dragonfly when a page loads. Enabling it will make load operations slower, and use more memory. It will also make network body reporting more accurate
Global header overrides
It is sometimes necessary to impersonate another HTTP client such as a bot, a mobile browser, etc. It is already possible to do that through the Make Request tab, but it might be cumbersome in some circumstances to have to type these manually. Once the Enable global header overrides checkbox is selected, there are two choices:
- Select a predefined profile.
- Create a profile and save it.
Both will spoof the HTTP headers sent by the browser to the server. These will last only the Opera Dragonfly session time. The list of preset profiles emulate the most common browsers.
If a preset profile is not used, headers will be added or overrided. When adding for example
X-Foo header, the rest of the headers will be kept. It is practical for overriding the
User-Agent header or mocking specific proxies or web clients. It becomes very practical for testing APIs.