Navigation Error Logging (original) (raw)

W3C

W3C First Public Working Draft 11 February 2014

This version:

http://www.w3.org/TR/2014/WD-navigation-error-logging-20140211/

Latest version:

http://www.w3.org/TR/navigation-error-logging/

Latest Editor's Draft:

http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationErrorLogging/Overview.html

Editors:

Arvind Jain, Google Inc., <arvind@google.com>

Jatinder Mann, Microsoft Corp., <jmann@microsoft.com>

Alois Reitbauer, Compuware Corp., <alois.reitbauer@compuware.com>

Copyright © 2014 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3Cliability,trademark and document use rules apply.


Abstract

This specification defines an interface to store and retrieve error data related to the previous navigations of a document.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This is document is the First Public Working Draft of the Navigation Error Logging specification.

Please send comments to public-web-perf@w3.org (archived) with [NavigationErrorLogging] at the start of the subject line.

This document is produced by the Web Performance Working Group. The Web Performance Working Group is part of the Rich Web Clients Activity in the W3C Interaction Domain.

Publication as a First Public Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Table of Contents

  1. 1Introduction
  2. 2Conformance requirements
  3. 3 Terminology
  4. 4 Navigation Error Logging
    1. 4.1 Introduction
    2. 4.2 The NavigationErrorEntry interface
    3. 4.3 Extensions to the Performance Interface
    4. 4.4 Monotonic Clock
  5. 5 Privacy and Security
  6. 6 References
  7. Acknowledgements

1 Introduction

This section is non-normative.

Accurately measuring performance characteristics of web applications is an important aspect in helping site developers understand how to make their web applications faster. Likewise, measuring and understanding when web applications are not properly loading for end users due to network errors is an example of the worst case web browsing performance.

Today, site developers do not have real time web application availability data from their end users. Synthetic testing cannot truly provide global or near real-time availability data for real end users.

For example, a user visits http://example.com, causing the User Agent to send a HTTP request to the server. The server has a memory bug that causes a random set of responses to have a space in the middle of the HTTP response header, like so:

    HTTP/1. 1 200 OK
    Date: Thu, 24 Jan 2015 05:46:54 GMT
    Content-Length: 2291
    Content-Type: text/html

In this example, the seventh character of the first response, incorrectly has a space (e.g., HTTP/1. 1 should be HTTP/1.1). When the server sends this response, this causes strict format validation issues at the CDN near the user to fail to process the request. So while the server sees a 200 OK HTTP response, the end user actually sees a 500 Server Error HTTP response.

The previous example described a case where the site developers may not actually know that end users are hitting this problem for quite some time. As the issue is random, it may not be caught by synthetic testing.

To address the need for detailed information on the errors resulting from the navigation of the document, the Navigation Error Logging specification defines the NavigationErrorEntry interface. This interface allows JavaScript mechanisms to provide client-side error data on the previous navigations of the document within the applications. As it is typically impossible to obtain error data through JavaScript mechanisms during an aborted navigation due to the error, this data is persisted across sessions. The interface also allows a web developer to specify a error reporting url that the user agent can use to upload error data to in real time on a navigation error.

The following script shows how a developer can use the NavigationErrorEntry interface to obtain accurate error timing data related to the previous navigations of the document.