Ever wondered what HTTP shenanigans are going on behind the scenes? IBM Page Detailer can help.
Perhaps you've had the unenviable task of troubleshooting some strange issues and found yourself asking:
Page Detailer can assist in answering each of these, and other puzzling questions about website behavior.
Here's how to get started:
Note: You may be prompted to allow this application to access the internet - if so, unblock it.
Once loaded, it should look something like this:
Page Detailer works by listening for HTTP and HTTPS traffic, then reporting on that traffic in process-specific windows. You'll notice a report window within the application titled "Empty 1". When an application (such as a browser) makes an HTTP(S) request, that application process will become attached to a report window.
As more applications begin to make web requests, more windows will appear in Page Detailer. In the example below, "Empty 1" (behind) is attached to an instance of Firefox, while "Empty 2" is attached to Internet Explorer.
After selecting an item from the left-hand pane, you can see a Gantt chart of all the individual requests which comprised that page. These individual requests include any HTML content loaded into frames as well as any JavaScript imports and accompanying CSS.
Selecting the Details tab reveals a list of all downloaded components, giving the names of the files retrieved and relevant performance data.
Double-clicking an entry in the list brings up the Events Window.
This window contains the technical information about the request. This data can be used to answer the questions posed earlier, and offers a host of other insights into the inner workings of the web-browser/web-server interaction.
The information available in the Events window will be discretized into segments such as the following:
Note: Not all segments listed above will appear for each request, and some information may be in segments not listed above.
Most of these fields are self-explanatory, and some are totally inexplicable (like those used internally by Page Detailer). Nevertheless, here is a description of the interesting segments:
General house-keeping data about the event. Specifically, this field contains information about the time the event occurred and the application which initialized the request.
Performance Metrics. This data details the specific start-times and durations of the transaction components. Could be useful in investigating latency, connectivity and throughput issues.
This segment houses the HTTP Request Headers. Very useful since it provides:
This segment houses the HTTP Reply Headers which were sent back to the browser by the server. Also very useful since it provides:
Params - Any HTTP authentication challange information required by the browser to make a response such as Realm data or Tokens/Nonces.
These fields contain the actual content (body) of the received HTTP transmission. If the latter is provided, it will contain the data presented in hexidecimal notation. This is similar to the output one would expect from a packet analyzer such as Wireshark (formerly Ethereal).
Remote Host TCP Port - The TCP port over which the HTTP(S) connection was made. This information should also be available from the full URL. The default ports for HTTP and HTTPS are 80 and 443 respectively, though other ports are also common. Apache Tomcat defaults to port 8080 for HTTP traffic, and SmoothWall runs its HTTPS administration console over port 441.
Remote Host IP Address - The IP Address of the web-server. Not usually very useful since this information can be extracted from the full request URL.
Full Remote Host URL - The fully qualified URL which was requested.
Page Detailer provides a convenient window into the underpinnings of HTTP(S) transfers. Using the Events viewers, one can gain deep insight into the handshake steps which take place inside an otherwise elusive process.
Since it's not a plug-in or extension to an existing application, it's great for providing a universal platform for investigating HTTP(S) transfers. Though this article focuses on its use in conjunction with traditional browsers, there's no reason why it wouldn't work with other persistent or semi-persistent programs such as web spiders or scripts (such as those which can leverage the cURL library).
As discussed in the License section below, this software is only available for free as a 90 day trial, so long-term usage may be an issue for low-budget or no-budget operations. For an Open Source alternative, check out Tamper Data.
Microsoft Windows + Choice of browser
Unfortunately, IBM Page Detailer is not Open Source Software (OSS). In fact, it's not even free! According to the download page, it's only good for 90 days.
Additionally, use of IBM Page Detailer is subject to IBM's International License Agreement for Early Release of Programs.