Skip to main content



Updating HTTP

As we talked about in lecture, the World Wide Web has been around since 1989. Its hypertext-based structure proved to be very well suited for organizing data on the internet. However, the way we use the internet has changed drastically since then, so it’s a problem that HTTP/1.1, a major component of transferring data on the web, hasn’t changed since 1999. Consequently, many are pushing for it to be completely replaced with the new HTTP/2, which, if utilized properly, promises to significantly speed up load times.

To understand why updating HTTP is so important, it’s important to first understand the role that HTTP plays. While it may be easy to map out (parts of) the web by seeing what a page links to and then what those link to and so on, what’s actually going on in your computer isn’t as simple as that neat little picture. Being “on” a webpage doesn’t really mean anything. All the data associated with that website is stored on a server somewhere, completely independent of whatever might link to this data or be linked to by it, and you don’t have access to it. Any time that you want to post something or refresh something on a site, you need to send a request to the server over HTTP. So if you want websites to be responsive and to keep the information that it’s providing you with up-to-date, you need HTTP to be able to quickly and reliably make these requests.

Unfortunately, with HTTP/1.1, these requests aren’t so quick and reliable. If one request takes a long time, it can block off other requests from being processed in the mean time. Additionally, any time a new request is made, a new connection to the server needs to be opened up. This makes refreshing even small amounts of data very expensive and forces sites to update very infrequently. Developers would essentially try to make sure that as much as possible was packed into each request, in order to make the most of each connection.

With HTTP/2, the picture is a little closer to the way we think of the web, with a single connection between the client and server, so that it’s a little more like you’re “on” the site. This connection allows multiple threads of requests to be concurrently transferred. This means that there’s no need to put off making small requests or to try jamming everything into one big request, as multiple small requests can be made at the same time without requiring a new connection being opened up. And the concurrency means you don’t have to worry about a single request stopping the others from being processed. Also, the server can push data to the client that they haven’t even requested, making the connection between client and server even closer to our picture of the web.

 

http://royal.pingdom.com/2015/06/11/http2-new-protocol/

Comments

Leave a Reply

Blogging Calendar

October 2015
M T W T F S S
 1234
567891011
12131415161718
19202122232425
262728293031  

Archives