Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties

Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Cataloged from student-s...

Full description

Bibliographic Details
Main Author: Hsu, Eeway Erika
Other Authors: Hari Balakrishnan.
Format: Others
Language:English
Published: Massachusetts Institute of Technology 2018
Subjects:
Online Access:http://hdl.handle.net/1721.1/119526
id ndltd-MIT-oai-dspace.mit.edu-1721.1-119526
record_format oai_dc
spelling ndltd-MIT-oai-dspace.mit.edu-1721.1-1195262019-05-02T15:40:42Z Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties Hsu, Eeway Erika Hari Balakrishnan. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017. This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. Cataloged from student-submitted PDF version of thesis. Includes bibliographical references (pages 65-67). This thesis presents an evaluation of web performance under HTTP/1.1 and HTTP/2. It takes a novel approach to compare the two protocols and understand the performance differences between them. It analyzes each protocol's web performance with respect to its web page dependency graph, identifying key graph properties and the relationships between those properties and the resultant performance changes. To do this, we present Pagescope, a tool that visualizes the relationship between web page properties and the improvement provided. It first records a corpus of web pages by emulating a web client. It then retrieves data from the resulting network requests and responses. It processes the data to create a dependency graph and extracts properties used in classifying these web pages. We identify the number, size and cacheability of resources, the number of distinct origins, the number of redirects, the distribution of resource priorities, the depth and breadth of the page dependency graph, the number of connections per origin, and the number of HTTPS clusters, as classification properties. These pages are then loaded under various network configurations, and the load times recorded. The page properties and load times are stored in a database. We find trends between the classifications and page load times. As with some previous studies, we find that HTTP/2 without server push does not consistently outperform HTTP/1.1 [35, 9, 7]. Instead of explaining the results through network condition variations, we control that aspect and explain performance differences through variations in web page dependency graph properties. We see that there are optimal per property ranges with which a page best renders the benefits of HTTP/2. Contradictory to the naive hypothesis, HTTP/2 performance deteriorates with above average numbers of resources. Related properties - the number of resources, the number of origins, and the maximum breadth follow the same trends. As the number of HTTPS clusters on a page increases, HTTP/2 performance is overtaken by HTTP/1.1. Web pages with an above average number of resources and HTTPS clusters tend to be unnecessarily complex. These results suggest that HTTP/2 has an overhead which is only negated by well-designed pages that can utilize the new features. Guidelines for such pages can be found on PageSpeed Insights [24]. by Eeway Erika Hsu. M. Eng. 2018-12-11T20:38:48Z 2018-12-11T20:38:48Z 2017 2017 Thesis http://hdl.handle.net/1721.1/119526 1066694509 eng MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission. http://dspace.mit.edu/handle/1721.1/7582 67 pages application/pdf Massachusetts Institute of Technology
collection NDLTD
language English
format Others
sources NDLTD
topic Electrical Engineering and Computer Science.
spellingShingle Electrical Engineering and Computer Science.
Hsu, Eeway Erika
Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties
description Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Cataloged from student-submitted PDF version of thesis. === Includes bibliographical references (pages 65-67). === This thesis presents an evaluation of web performance under HTTP/1.1 and HTTP/2. It takes a novel approach to compare the two protocols and understand the performance differences between them. It analyzes each protocol's web performance with respect to its web page dependency graph, identifying key graph properties and the relationships between those properties and the resultant performance changes. To do this, we present Pagescope, a tool that visualizes the relationship between web page properties and the improvement provided. It first records a corpus of web pages by emulating a web client. It then retrieves data from the resulting network requests and responses. It processes the data to create a dependency graph and extracts properties used in classifying these web pages. We identify the number, size and cacheability of resources, the number of distinct origins, the number of redirects, the distribution of resource priorities, the depth and breadth of the page dependency graph, the number of connections per origin, and the number of HTTPS clusters, as classification properties. These pages are then loaded under various network configurations, and the load times recorded. The page properties and load times are stored in a database. We find trends between the classifications and page load times. As with some previous studies, we find that HTTP/2 without server push does not consistently outperform HTTP/1.1 [35, 9, 7]. Instead of explaining the results through network condition variations, we control that aspect and explain performance differences through variations in web page dependency graph properties. We see that there are optimal per property ranges with which a page best renders the benefits of HTTP/2. Contradictory to the naive hypothesis, HTTP/2 performance deteriorates with above average numbers of resources. Related properties - the number of resources, the number of origins, and the maximum breadth follow the same trends. As the number of HTTPS clusters on a page increases, HTTP/2 performance is overtaken by HTTP/1.1. Web pages with an above average number of resources and HTTPS clusters tend to be unnecessarily complex. These results suggest that HTTP/2 has an overhead which is only negated by well-designed pages that can utilize the new features. Guidelines for such pages can be found on PageSpeed Insights [24]. === by Eeway Erika Hsu. === M. Eng.
author2 Hari Balakrishnan.
author_facet Hari Balakrishnan.
Hsu, Eeway Erika
author Hsu, Eeway Erika
author_sort Hsu, Eeway Erika
title Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties
title_short Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties
title_full Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties
title_fullStr Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties
title_full_unstemmed Evaluating HTTP/1.1 and HTTP/2 performance with dependency graph properties
title_sort evaluating http/1.1 and http/2 performance with dependency graph properties
publisher Massachusetts Institute of Technology
publishDate 2018
url http://hdl.handle.net/1721.1/119526
work_keys_str_mv AT hsueewayerika evaluatinghttp11andhttp2performancewithdependencygraphproperties
_version_ 1719025916557918208