The Internet's existence as we know it today owes a lot to ARPAnet, also known as the grandfather of the Internet as stated by Mary Bellis. ARPAnet was developed by the Advanced Research Projects Agency (ARPA) which was a branch on the US military that developed top secret systems during the cold war. Work started out on ARPAnet in 1969 as a protected flow of information between military installations, by creating a network of geographically separated computers which could exchange data. By 1990 ARPAnet was retired and gave way to the Internet which was on the way in becoming the huge success as we know it today.
HTTP
The way hypertext data is transferred over the Internet is dictated via the Hypertext Transfer Protocol (HTTP) and was created in 1990 by Tim Berners-Lee while at CERN.
Web clients (such as Web Browsers) and Web Servers communicate together via HTTP requests & responses and in order to do this, both must abide to the rules stated in this protocol. The most popular HTTP request types are:
- GET - Attempts to access the web page and return the whole page including the HTTP header
- POST - Attempts to access a web page that contains an HTML form and completes its fields
- HEAD - Attempts to access a web page and returns just the HTTP header
HTTP works over the TCP protocol and utilises port 80 by default (this can be manually set to port 8080). The current implementation on HTTP is HTTP/1.1 which addressed the performance issues of HTTP/1.0.
HTTP/1.0 Performance Issues
HTTP/1.0 had a number of performance issues, for example it would only allow one HTTP request per connection. This led to multiple connections being created by a single client machine due to the ever growing requirement of multiple HTTP requests due to the creation of more elaborate web pages. Also due to this limitation, browsers had to allow more connections with HTTP/1.0 in order to achieve fast performance, as stated in Steve Souder's blog post. All these connections contribute to network congestion and therefore slow down the Internet.
Another problem with creating multiple connections is the Slow-start procedure of the TCP. This procedure is not a problem for long lasting connections, but for HTTP (having a short lasting connection) leads to slow performance, multiply that by multiple connections and its performance gets crippled.
Improvements in HTTP/1.1
The upgrade to HTTP/1.1 addressed multiple issues from the previous version and also added some new functionality as well, some of these are outlined below:
- Persistent Connections
- Allows multiple HTTP requests on the same connection in sequential order. This upgrade solved the performance issues I stated previously.
- OPTIONS method
- A web client can use this method to retrieve the capabilities of the server, although this is rarely used as the server sends its capabilities in the HTTP responses.
- Caching
- HTTP1.0 supported page caching via the header 'If-Modified-Since', but HTTP/1.1 greatly improved on this concept via the entity tag.
- This works by giving every resource an entity tag, than compares these entity tags to identify whether they are the same or not.
- 100 message status
- Prevents a web client sending a large request to the server, without knowing if the server is capable or authorized to process the request. Instead the web client sends only the headers and the web server responds with a status code 100, which means continue.
HTTPS
HTTPS is just like HTTP, but instead of using TCP port 80, it uses port 443 instead and (This is where the big difference comes in) works in conjunction with another protocol called Secure Sockets Layer (SSL). What this protocol does is take the data and encrypts it via an arithmetic algorithm and a unique security certificate obtained from a reliable certificate authority. This way the connection between web client & web server is now secure and therefore enables safe transfer of sensitive data.
This has revolutionized the usage of the Internet and paved the way for the e-commerce industry, without it secure payments wouldn't be possible and I can safely say that none of us would risk making a payment over the Internet. HTTPS also made it possible for other systems which we take for granted today, such as On-line Banking Systems which enable us to view account balances, transaction details, currency transfer, etc...
Other Links
For me to create this post I visited the following pages:
ARPAnet:
HTTP:
HTTP/1.0:
Defferences between HTTP 1.0 & 1.1:
HTTPS:
HTTP request types:
No comments:
Post a Comment