Saturday, July 5, 2008

Why are we still using HTTP?

I have a big question to you all: why are we still using an HTTP protocol?

Another day, I browsed around to find information and resources about AJAX. I read a piece about one big problem for AJAX developers which is the server push technology. Also there were few solutions provided to overcome that problem. The more I read about it, the more I realized, that we are dealing with the wrong problem. It seems wrong to try to invent a mechanism to do a server push in AJAX and over HTTP, because what we actually try to do is to fit a square box into a round hole and it just does not fit!

We are desperately trying to establish an asynchronous communication model on top of synchronous HTTP protocol. This is totally beyond my mind. Why are we wasting energy on such a silly thing?

The inherent limitations af synchronous HTTP protocol simply put a huge restriction into developing modern internet applications. Our mind has turned towards asynchronous applications where client can dynamically ask additional information from server and server can also post information dynamically to client whenever needed. But why are we trying to establish this new application standard on top of an old protocol that is not able to meet the requirements?

I think that it is time to think just a little outside the box here and perhaps develop a new more suitable internet protocol to meet the demand.

Of course one could say, that HTTP is everywhere and browsers do not support any other protocols and therefore it is impossible. But why browsers do not support any other protocol? Well, because all the internet servers provide content over HTTP. And why is that? Because all browser support HTTP. Seems like an egg-chicken problem? Well lets look again.

Indeed truth is that HTTP is everywhere but lets take another analogue. There were days where all the pages in the internet were pure HTML and nothing but. If you look at current internet sites then you see, that there is still some HTML but there are also a lots of other technologies present like Java, Flash and so on. How is that possible? The fact that browsers support different plug-ins, has enriched our web-pages beyond recognition (compared to pure HTML era).

Why can't we make the same thing happen with protocols? Why couldn't a browser support several protocols through plug-ins? All internet users are accustomed with plug-in installation routines and nobody notices the fact, that web-page requires a flash plug-in to be installed. The user just makes a few clicks, installs the plug-in and enjoys a flash media. Is it that hard to make the same thing happening with protocols?

If we would have a fancy asynchronous protocol XYZ available and a user requests a page, then one would be greeted with a dialog that instructs user to install a missing plug-in for that protocol. After few clicks, the plug-in is installed and user can experience a fancy application.

One of course can say, that HTTP is still so popular that users cannot accept such a change. Tell me, how many people will type their addresses like h-t-t-p-:-/-/-w-w-w-.-g-o-o-g-l-e-.-c-o-m? I suspect that 90+% of users will simply type www.google.com and majority of them have already discovered that google.com works as well. And if you would ask from a user wether one would mind another protocol instead of HTTP, the probable response would be that 'what the heck is HTTP?'

So seems that there are no major obstacles to introduce a new protocol that is appropriate for a modern asynchronous internet applications. There are asynchronous message oriented protocols already available. One of the better known is JMS but there are others as well and nobody restricts to develop a new lean-mean internet oriented messaging protocol. There is a possibility to introduce plug-ins and if Firefox does not yet support protocol plug-in, then it is about time take advantage the open source nature of FF and make the necessary improvements. And users - well they probably just does not mind as long as the improved experience is guaranteed.

So my question to you is: why are we still using inappropriate HTTP protocol? When you, IT people, are not satisfied with Windows, you jump to Linux or OS X. When you are not satisfied with IE, you switch to FF. When you are not satisfied with present tools, you try to seek the way out. Why are you still so happy with sub-par HTTP protocol, is totally beyond me.

I am expecting just a little outside the box thinking from you all.

Over and out!

No comments: