From 13b46fb721ee00845cf48086678969dcee04da0d Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Tue, 15 Sep 2020 19:16:05 +0100 Subject: [PATCH 1/7] README.md (en): Language improvements --- en/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/README.md b/en/README.md index 2f5b929..0814096 100644 --- a/en/README.md +++ b/en/README.md @@ -3,7 +3,7 @@ http2 explained This is a detailed document describing HTTP/2 ([RFC 7540](https://httpwg.github.io/specs/rfc7540.html)), the background, concepts, -protocol and something about existing implementations and what the future +protocol, and something about existing implementations and what the future might hold. See https://daniel.haxx.se/http2/ for the canonical home for this project. @@ -17,6 +17,6 @@ CONTRIBUTING I encourage and welcome help and contributions from anyone who may have improvements to offer. We accept [pull requests](https://github.com/bagder/http2-explained/pulls), but you can also -just file [issues](https://github.com/bagder/http2-explained/issues) or send email to daniel-http2@haxx.se with your suggestions! +just file [issues](https://github.com/bagder/http2-explained/issues) or email daniel-http2@haxx.se with your suggestions! / Daniel Stenberg From eecd8647ffa85c4210fd49f28d1deeb45d9edd8c Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Wed, 16 Sep 2020 05:16:23 +0100 Subject: [PATCH 2/7] part1.md (en): Corrected lists numbers --- en/part1.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/part1.md b/en/part1.md index d900084..7b1d56f 100644 --- a/en/part1.md +++ b/en/part1.md @@ -68,7 +68,7 @@ The first version of this document was published on April 25th 2014. Here follow ### Version 1.11 - Lots of language improvements mostly pointed out by friendly contributors -- 8.3.1: Mention nginx and Apache httpd specific acitivities +- 8.3.2: Mention nginx and Apache httpd specific acitivities ### Version 1.10 @@ -89,6 +89,6 @@ The first version of this document was published on April 25th 2014. Here follow - Lots of spell fixes - At 30 implementations now - 8.5: Added some current usage numbers -- 8.3: Mention internet explorer too -- 8.3.1 Added "missing implementations" -- 8.4.3: Mention that TLS also increases success rate +- 8.3.1: Mention internet explorer too +- 8.3.2: Added "missing implementations" +- 8.4.4: Mention that TLS also increases success rate From fe7fcbf137fe1a3b6dcef33f20a2da8ee5d972ac Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Wed, 16 Sep 2020 11:03:28 +0100 Subject: [PATCH 3/7] part1.md (en): Words errors correction --- en/part1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/part1.md b/en/part1.md index 7b1d56f..42bf4fe 100644 --- a/en/part1.md +++ b/en/part1.md @@ -68,7 +68,7 @@ The first version of this document was published on April 25th 2014. Here follow ### Version 1.11 - Lots of language improvements mostly pointed out by friendly contributors -- 8.3.2: Mention nginx and Apache httpd specific acitivities +- 8.3.2: Mention nginx and Apache httpd specific activities ### Version 1.10 @@ -89,6 +89,6 @@ The first version of this document was published on April 25th 2014. Here follow - Lots of spell fixes - At 30 implementations now - 8.5: Added some current usage numbers -- 8.3.1: Mention internet explorer too +- 8.3.1: Mention Internet Explorer too - 8.3.2: Added "missing implementations" - 8.4.4: Mention that TLS also increases success rate From 46f60e9ed909655826fa23183ed01e620b519cdd Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Wed, 16 Sep 2020 11:09:33 +0100 Subject: [PATCH 4/7] part1.md (en): Removed extra indents --- en/part1.md | 54 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/en/part1.md b/en/part1.md index 42bf4fe..a016106 100644 --- a/en/part1.md +++ b/en/part1.md @@ -52,43 +52,43 @@ The first version of this document was published on April 25th 2014. Here follow ### Version 1.13 - Converted the master version of this document to Markdown syntax -- 13: Mention more resources, updated links and descriptions -- 12: Updated the QUIC description with reference to draft -- 8.5: Refreshed with current numbers -- 3.4: The average is now 40 TCP connections -- 6.4: Updated to reflect what the spec says +- 13: Mention more resources, updated links and descriptions +- 12: Updated the QUIC description with reference to draft +- 8.5: Refreshed with current numbers +- 3.4: The average is now 40 TCP connections +- 6.4: Updated to reflect what the spec says ### Version 1.12 -- 1.1: HTTP/2 is now in an official RFC -- 6.5.1: Link to the HPACK RFC -- 9.1: Mention the Firefox 36+ config switch for http2 -- 12.1: Added section about QUIC +- 1.1: HTTP/2 is now in an official RFC +- 6.5.1: Link to the HPACK RFC +- 9.1: Mention the Firefox 36+ config switch for http2 +- 12.1: Added section about QUIC ### Version 1.11 -- Lots of language improvements mostly pointed out by friendly contributors -- 8.3.2: Mention nginx and Apache httpd specific activities +- Lots of language improvements mostly pointed out by friendly contributors +- 8.3.2: Mention nginx and Apache httpd specific activities ### Version 1.10 -- 1: The protocol has been “okayed” -- 4.1: Refreshed the wording since 2014 is last year -- Front: Added image and call it “http2 explained” there, fixed link -- 1.4: Added document history section -- Many spelling and grammar mistakes corrected -- 14: Added thanks to bug reporters -- 2.4: Better labels for the HTTP growth graph -- 6.3: Corrected the wagon order in the multiplexed train -- 6.5.1: HPACK draft-12 +- 1: The protocol has been “okayed” +- 4.1: Refreshed the wording since 2014 is last year +- Front: Added image and call it “http2 explained” there, fixed link +- 1.4: Added document history section +- Many spelling and grammar mistakes corrected +- 14: Added thanks to bug reporters +- 2.4: Better labels for the HTTP growth graph +- 6.3: Corrected the wagon order in the multiplexed train +- 6.5.1: HPACK draft-12 ### Version 1.9 -- Updated to HTTP/2 draft-17 and HPACK draft-11 -- Added section "10. http2 in Chromium" (== one page longer now) -- Lots of spell fixes -- At 30 implementations now -- 8.5: Added some current usage numbers -- 8.3.1: Mention Internet Explorer too -- 8.3.2: Added "missing implementations" +- Updated to HTTP/2 draft-17 and HPACK draft-11 +- Added section "10. http2 in Chromium" (== one page longer now) +- Lots of spell fixes +- At 30 implementations now +- 8.5: Added some current usage numbers +- 8.3.1: Mention Internet Explorer too +- 8.3.2: Added "missing implementations" - 8.4.4: Mention that TLS also increases success rate From c575ac5c395953bb9b38cc59c6eed5d7bbc0409e Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Wed, 16 Sep 2020 11:36:45 +0100 Subject: [PATCH 5/7] part1.md (en): Removed extra link --- en/part1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/part1.md b/en/part1.md index a016106..3eb8fbb 100644 --- a/en/part1.md +++ b/en/part1.md @@ -37,7 +37,7 @@ work. If you find mistakes, omissions, errors or blatant lies in this document, please send me a refreshed version of the affected paragraph and I'll make amended versions. I will give proper credits to everyone who helps out! I hope to make this document better over time. -This document is available at [https://daniel.haxx.se/http2](https://daniel.haxx.se/http2) +This document is available at https://daniel.haxx.se/http2 ## 1.3 License From 8cbbafeb2b91767355edd6ca56892c0fc49697c0 Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Wed, 16 Sep 2020 11:39:51 +0100 Subject: [PATCH 6/7] part1.md (en): Language improvements --- en/part1.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/en/part1.md b/en/part1.md index 3eb8fbb..c373d35 100644 --- a/en/part1.md +++ b/en/part1.md @@ -5,14 +5,14 @@ out as a presentation Daniel did in Stockholm in April 2014 that was subsequently converted and extended into a full-blown document with all details and proper explanations. -RFC 7540 is the official name of the final http2 specification and it was published on May 15th 2015: https://www.rfc-editor.org/rfc/rfc7540.txt +RFC 7540 is the official name of the final http2 specification and it was published on May 15th, 2015: https://www.rfc-editor.org/rfc/rfc7540.txt All and any errors in this document are my own and the results of my -shortcomings. Please point them out and they will be fixed in updated +shortcomings. Please point them out, and they will be fixed in updated versions. -In this document I've tried to consistently use the word "http2" to describe -the new protocol while in pure technical terms, the proper name is HTTP/2. I +In this document, I've tried to consistently use the word "http2" to describe +the new protocol while in purely technical terms, the proper name is HTTP/2. I made this choice for the sake of readability and to get a better flow in the language. @@ -47,7 +47,7 @@ This document is licensed under the Creative Commons Attribution 4.0 license: ht ## 1.4 Document history -The first version of this document was published on April 25th 2014. Here follows the largest changes in the most recent document versions. +The first version of this document was published on April 25th, 2014. Here follows the largest changes in the most recent document versions. ### Version 1.13 @@ -91,4 +91,4 @@ The first version of this document was published on April 25th 2014. Here follow - 8.5: Added some current usage numbers - 8.3.1: Mention Internet Explorer too - 8.3.2: Added "missing implementations" -- 8.4.4: Mention that TLS also increases success rate +- 8.4.4: Mention that TLS also increases the success rate From 6114d3f88949e39c097d1ccbda2d2f7cbaaed741 Mon Sep 17 00:00:00 2001 From: "HA3IK (Nazar Holubovskyy)" Date: Wed, 23 Sep 2020 09:39:29 +0100 Subject: [PATCH 7/7] part2.md (en): Language improvements --- en/part2.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/en/part2.md b/en/part2.md index 8001aee..7829604 100644 --- a/en/part2.md +++ b/en/part2.md @@ -1,10 +1,10 @@ # 2. HTTP today -HTTP 1.1 has turned into a protocol used for virtually everything on the Internet. Huge investments have been made in protocols and infrastructure that take advantage of this, to the extent that it is often easier today to make things run on top of HTTP rather than building something new on its own. +HTTP 1.1 has turned into a protocol used for virtually everything on the Internet. Huge investments have been made in protocols and infrastructure that takes advantage of this, to the extent that it is often easier today to make things run on top of HTTP rather than building something new on its own. ## 2.1 HTTP 1.1 is huge -When HTTP was created and thrown out into the world, it was probably perceived as a rather simple and straightforward protocol, but time has proved that to be false. HTTP 1.0 in RFC 1945 is a 60-page specification released in 1996. RFC 2616 that describes HTTP 1.1 was released only three years later in 1999 and had grown significantly to 176 pages. Yet when we within IETF worked on the update to that spec, it was split up and converted into six documents with a much larger page count in total (resulting in RFC 7230 and family). By any count, HTTP 1.1 is big and includes a myriad of details, subtleties and, not the least, a lot of optional parts. +When HTTP was created and thrown out into the world, it was probably perceived as a rather simple and straightforward protocol, but time has proved that to be false. HTTP 1.0 in RFC 1945 is a 60-page specification released in 1996. RFC 2616 that describes HTTP 1.1 was released only three years later in 1999 and had grown significantly to 176 pages. Yet when we within IETF worked on the update to that spec, it was split up and converted into six documents with a much larger page count in total (resulting in RFC 7230 and family). By any count, HTTP 1.1 is big and includes a myriad of details, subtleties, and not the least, a lot of optional parts. ## 2.2 A world of options @@ -22,9 +22,9 @@ Simply put, TCP can be utilized better to avoid pauses or wasted intervals that ## 2.4 Transfer sizes and number of objects -When looking at the trend for some of the most popular sites on the web today and what it takes to download their front pages, a clear pattern emerges. Over the years, the amount of data that needs to be retrieved has gradually risen up to and above 1.9MB. What is more important in this context is that, on average, over 100 individual resources are required to display each page. +When looking at the trend for some of the most popular sites on the web today and what it takes to download their front pages, a clear pattern emerges. Over the years, the amount of data that needs to be retrieved has gradually risen up to and above 1.9 MB. What is more important in this context is that, on average, over 100 individual resources are required to display each page. -As the graph below shows, the trend has been going on for a while, and there is little to no indication that it will change anytime soon. It shows the growth of the total transfer size (in green) and the total number of requests used on average (in red) to serve the most popular web sites in the world, and how they have changed over the last four years. +As the graph below shows, the trend has been going on for a while, and there is little to no indication that it will change anytime soon. It shows the growth of the total transfer size (in green) and the total number of requests used on average (in red) to serve the most popular websites in the world, and how they have changed over the last four years. ![transfer size growth](https://raw.githubusercontent.com/bagder/http2-explained/master/images/transfer-size-growth.png) @@ -32,11 +32,11 @@ As the graph below shows, the trend has been going on for a while, and there is -HTTP 1.1 is very latency sensitive, partly because HTTP pipelining is still riddled with enough problems to remain switched off to a large percentage of users. +HTTP 1.1 is very latency-sensitive, partly because HTTP pipelining is still riddled with enough problems to remain switched off to a large percentage of users. While we've seen a great increase in available bandwidth to people over the last few years, we have not seen the same level of improvements in reducing latency. High-latency links, like many of the current mobile technologies, make it hard to get a good and fast web experience even if you have a really high bandwidth connection. -Another use case requiring low latency is certain kinds of video, like video conferencing, gaming and similar where there's not just a pre-generated stream to send out. +Another use case requiring low latency is certain kinds of video, like video conferencing, gaming, and similar where there's not just a pre-generated stream to send out. ## 2.6. Head-of-line blocking