draft: HTTP Waterfall UI Conventions

HTTP waterfall charts are a way of viewing HTTP requests. They're popular in many tools including Firebug, WebPagetest, and HttpWatch. Unfortunately, the colors and terms used in waterfall charts vary dramatically across tools. (See the blog post Waterfall UI Conventions for a review of the tools and issues.) This inconsistency causes confusion amongst developers and the general public sharing articles and presentations that contain waterfall charts.

This document proposes standard conventions for the colors and terms used in waterfall charts.

The following conventions are addressed:

Content-Type

The following table lists the name, color, and abbreviation for the set of Content-Types.

Content-Type hex color abbreviation
HTML
#82B5FC
H
JavaScript
#FEC584
J
CSS
#B2EA94
C
image
#C49AE8
I
Flash
#2DB7C1
F
text/plain,
XML, JSON
#FEF184
T
redirect (3xx)
#F941FD
3
error (4xx, 5xx)
#F54E51
4
other
#C4C4C4
O
Notes:

Connection State

The following table lists the name and color for the set of connection states.

connection state hex color
Block
#E5DED3
DNS Lookup
#056200
Connect
#B1493E
SSL Handshake
#456EAF
Send
#C648D3
Wait
#DFA809
Receive
#764782
Notes:

UI Guidelines

These colors will most frequently be used when drawing the horizontal bars in a waterfall time chart. Some tools use the horizontabl bar to show the Content-Type (Chrome Dev Tools), while other tools use the bar to show connection state (Firebug, HttpWatch, IE9 Developer Tools, and WebPagetest). This choice is left to the tool developer, but here are suggestions for the different scenarios:

show Content-Type in the bar
If the Content-Type is shown in the horizontal bar, a typical implementation is to show the connection state information in a popup over that bar.
Examples of charts using Content-Type colors:
show connection state in the bar
Many tools show connection state information in the horizontal bar since this typically provides a larger amount of horizontal space to convey the length of each state using colors. A typical solution for incorporating Content-Type information is to have a column that reflects each request's Content-Type. In many tools the requests can be sorted based on this column allowing for easier identification of specific resources. The Content-Type icons and abbreviations are helpful in this situation to show that information with a minimal use of horizontal space.
Examples of charts using connection state colors:
show both Content-Type and connection state
WebPagetest is evaluating this possibility by using the connection state colors for the early parts of the request (DNS Lookup, Connect, and SSL Handshake) but using the Content-Type color for the later states (Wait and Receive). (A slightly transparent version of the Content-Type color is used to distinguish these two states.)
Examples of charts using both:

Current Tools

Here are screenshots of current tools for comparison.

Chrome Developer Tools:

Firebug:

HttpWatch:

IE9 Developer Tools:

WebPagetest: