Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

README.md and part1-2.md (en): Fixed errors and language improvements #211

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions en/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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 [email protected] with your suggestions!
just file [issues](https://github.com/bagder/http2-explained/issues) or email [email protected] with your suggestions!

/ Daniel Stenberg
68 changes: 34 additions & 34 deletions en/part1.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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

Expand All @@ -47,48 +47,48 @@ 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

- 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.1: Mention nginx and Apache httpd specific acitivities
- 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: Mention internet explorer too
- 8.3.1 Added "missing implementations"
- 8.4.3: Mention that TLS also increases success rate
- 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 the success rate
12 changes: 6 additions & 6 deletions en/part2.md
Original file line number Diff line number Diff line change
@@ -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.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IF "infrastructure" THEN takes


## 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

Expand All @@ -22,21 +22,21 @@ 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.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is specified "1.9 MB", but on transfer size growth graph indicated 2.1 MB.
It's ok?


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)

## 2.5 Latency kills

<img style="float: right;" src="https://raw.githubusercontent.com/bagder/http2-explained/master/images/page-load-time-rtt-decreases.png" />

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

Expand Down