Nowadays, you pick up any developer and ask on what they are working on and you will get resonating answer of web development. But hardly half or even less than that knows which version of protocol “web” is running on! [DON’T GOOGLE! (I had did that 🙂 ) if you do not know, its HTTP 1.1] this also indicates how far the original designers of the protocol had achieved their goal of abstraction and laying out good protocol.
HTTP means Hypertext Transfer Protocol. The name itself sums up the web into it. Web is all about Hypertext [linked text] and data transfer from to and fro in its basic sense. We had gone further with HTTP, adding tons of things.
For any web developer/programmer, three things hold most prominent importance apart from his/her dev platform/language and these are the basic pillars of web. These are namely,
1. HTTP Protocol
2. Web Server(IIS, Apache, JBoss etc)
3. Web Clients(mostly Browsers like Internet Explorer, Firefox, Safari)
So understanding these basics is of prime importance. In this post, I am going to only focus on HTTP and limiting my scope to what fraction of knowledge that is essential (read assumed to have) for every web developer.
HTTP can be thought of as a communication system. Somebody calls up (Request) and somebody replies (Response) and yes the acknowledgments.
This basic nature of HTTP itself defines the existence of two types of programs that we had seen on the above list.
The program which calls up the fellow program at the other end is termed as web server and the programs which replies back is termed as web client.
These programs had mutually decided how to talk and via which language. This is our beloved and long standing man, HTTP.HTTP basically does not hold up the info with it about previous requests and its use. This is called “state”. I had talked to many developers who talks about HTTP being stateless protocol but they, surprisingly, unable to explain what it means.
This stateless nature of HTTP passes the worry of maintaining state to its both end programs that is web servers and browsers and here concept of state management takes its birth and becomes necessity of any server side platform. We will see the state management in detail in following posts.
Now, coming back to HTTP world, the talk between web server and browsers happen through commands. You must be well aware of GET and POST but there are also more to them.
Wikipedia has good explanation for all of these commands. You can refer to it here.
Now, we’ll see most interesting part of HTTP which is related to most of the developers i.e. error codes that HTTP provides.
You must be familiar with 403,404 numbers and those yuck ugly pages shown to your face by your browsers. (To those who are into browser development, why can’t you put those system-error pages to some nicely formatted pages which are meant for HUMANS, everybody is not geek ;)) .Anyway, have you ever thought about what it means and why those numbers are given in such fashion. Well, for that we need to delve deeper to history of HTTP. I am not adding yet another story to this post but if you are interested you can read the whole story about error codes especially of Room No. 404 at this site.
Now I want to conclude this post stating the meanings behind codes that are transferred to browsers.
2XX=Request Success Codes
3XX=Request redirection Codes
4XX=Client Error Codes
5XX =Web Server Error Codes
Hail! How I can I forget this? If we are talking about Web and HTTP then we always have to take one name. Yeah, Tim Burner Lee who is regarded as “The Father of Internet” or what we call as web. You can visit his homepage here.
1. World Wide Web consortium
2. RFC 2616
4. Room 404
5. HTTP Pipe lining