|Title:||Web Protocol: A modern replacement for HTTP|
Initially developed in 1991, HTTP was designed to be highly extensible and to be used by command-line interfaces (CLI). In the following two decades, use of the web has exploded and the way it's used has changed dramatically. Instead of writing requests by hand or by script, content is navigated by complex, feature-rich web browsers. Rather than single pages with the occasional image, modern web pages are incredibly intricate, containing images, videos, stylesheets, scripts, icons, and external ads. HTTP is being used for tasks never considered at its time of creation. With bandwidths soaring to over 100 Mbps, the main bottleneck to internet responsiveness is swiftly becoming the latency; the time it takes for the packets to travel from the client to the server and back. Our ability to decrease this round-trip-time (RTT) will not continue for much longer and as we approach the time it takes the packets to travel that distance, the only way to improve performance is to reduce the number of trips made. Google has created the SPDY protocol to attempt to reduce the number of trips made by HTTP by multiplexing multiple streams onto a single TCP stream. However, HTTP also suffers from the inefficiency of a text-based protocol, which takes substantially more processing to parse, since sanitisation for capitalisation and spacing may need to take place, and then a text parsing is used to process the packets. By comparison, binary protocols like TCP and IP can be parsed and constructed incredibly quickly, with highly-optimised kernel code. Web Protocol (WP) uses various methods to provide greater efficiency and features for the modern web like request suggestions and content pushing. A binary protocol in its entirety, WP is far faster to read and write than HTTP, and has far smaller headers. By multiplexing its streams onto a single TCP session, WP uses far fewer transmissions than HTTP; improving network efficiency and performance. To measure the difference in efficiency objectively, the Chromium open source web browser and Apache httpd web server will be supplemented to support a reference implementation of WP; providing a functional testing environment. The Webkit Web Inspector network tools built into Chromium can then be used to compare transmission, creation, and parsing times between WP and HTTP from an end-user's perspective; giving realistic, unbiased data for comparison. At the conclusion of the project, the protocol specification and reference implementations will be released under a BSD open source license, since proprietary licensing would tie an unmanageable weight around the protocol's feet.
|Supervisor:||Omer F Rana|