Presentation on theme: "An HTTP Extension to provide Timing Data for Performance Measurement Mike McCall, Akamai Technologies."— Presentation transcript:
An HTTP Extension to provide Timing Data for Performance Measurement Mike McCall, Akamai Technologies
State of the Art of Web Page Performance Measurement Synthetic Tests WebPageTest, Jmeter Keynote, Gomez, Pingdom Etc. Real User Measurement Boomerang, Episodes Lognormal, New Relic Etc.
How it works 1.User Agent sends a request header, Accept- Measurement, at the initiation of an HTTP session 2.Server negotiates with the UA to determine which measurements should be sent, as well as a TTL for the data collection 3.Assuming the negotiation is successful, once all measurements have been collected or the TTL has expired, the measurements are beaconed back in an HTTP POST with a Timing-Measurements header
Illustrative Use Case GET /index.html HTTP/2.0 Host: Accept-Measurement: allowed HTTP/ OK Send-Measurement: dns, firstByte, domReady, onLoad:30000 Timing-Measurement- Collector: /beacon.gif HTTP/ OK Send-Measurement: dns, firstByte, domReady, onLoad:30000 Timing-Measurement- Collector: /beacon.gif POST /beacon.gif HTTP/2.0 Host: Timing-Measurements: dns:23;firstByte:120;domReady:12 00;onLoad:1331 HTTP/ OK
Other Options Don’t want to POST data back to the initiating page? Specify the resource in a Timing-Measurements- Collector header. Want to override a collector on a per-page basis? Add a meta element to the HTML: More here: measurements-00