Overview of HTTP

If you have been using the internet for a while, youcan work, is that at the other end of the line is your
have probably typed into your browser something thatISP's computer. This computer, and all the other
starts with "http:" and ends with ".html", hit "Go",computers on the internet, have layers written by
watched your modem lights flicker on and off, and aprogrammers and designed by computer architects,
couple of seconds later you are magically looking atthat follow strict and detailed specifications of what to
page of todays news or a page of pictures. Let's trydo with the numbers coming out of your computer.This
and take some of the magic away ...I thought aboutsounds complex (and the details are!), but it is just the
calling this article a "Geeks view of HTTP"; I am notsame as the person on Rock n Roll knowing to wait
going into the nitty gritty, but rather present a sketch ofuntil they heard "over and out" before calling Jazz, and
how a geek might see something like HTTP, how theysaying "over" at the end of each sentence. If no one
can think something like HTTP is simple, and why theyfollowed these protocols the channel would have been
are not trying to make things complicated just for thechaos, everyone trying to talk over everyone else. In
sake of it!--* Layers *--The background to the sketchthe same way, if your computer and the other
is that computers are full of layers. Programmers andcomputers on the internet did not follow the
designers think in layers, because organizing in layersspecifications, the fact that your computer sends out
makes it easier to build things.You don't need to knowsome numbers over your phone line would be as
what or where the layers are in your computer, oruseless as it sounds in the first place! ... but, if the rules
where one starts and another stops, but it is helpful toare followed, it works.I am not going to go into the
remember that they are everywhere because that isactual details of these specifications, but you have
how geeks organize things.--* Specifications andprobably seen the acronyms; TCP/IP and DNS (and a
Protocols *--Specifications and Protocols are the thingsheap more!)--* HTTP *--Lets say that someone on
that are the mostly likely cause of all your computerRock n Roll knows there is a football almanac onboard
frustrations ... but they are a necessary evil. A wiseJazz which will confirm the score of a particular game
man once said that any specification longer than oneand settle an argument onboard Rock n Roll. When
line will have ambiguities and be a source of problems.Rock n Roll hears Jazz say "this is Jazz, go ahead,
There are lots of specifications and protocols inover" they know they have a connection to Jazz and
everyday life. An example of a protocol is when youcan start a conversation. Rock n Roll might say "Jazz
are driving and see a red light you slow down andcan you get me the score of the 1987 Superbowl,
stop until it turns green. The specification of thisover", and Jazz comes back with the answer finishing
protocol is the rule that is (probably) written down inwith an "over". Rock n Roll might ask for another
the road-rule book. But we don't need to read the roadscore, or might ask for the list of players, or might just
rules, it is just common sense to know to stop for asay "thanks, over" and which point Jazz would say,
red light. Of course we all know the words computers"See ya, over and out".--* *--That is really what HTTP
and common sense don't belong in the sameis doing. The connection has been made at lower
sentence, and that is why there are so manyseparate layers which are handling the numbers
computer specifications and they are generally so longtraveling out of your computer and moving them to the
and detailed.A common sentiment is "you really needcomputer you are connecting to. HTTP is a fairly
to spell things out for a computer". I think this is a bitsimple specification that allows one computer to ask
misleading. It isn't the computer that needs things speltanother for some information (by naming it), and for
out, it is the programmers and designers who build thethat information to be returned. It doesn't say anything
higher layers who need to spell things out for otherabout where that information comes from; as far as
programmers creating other higher layers.If onethe HTTP specification is concerned, somebody could
programmer ignores the rules of a specification, orbe sitting at the other computer typing in the response.
doesn't know there is a rule to follow, the result can beHowever, usually the information that is asked for is
the same as if a driver runs a red light ... a crash.--*the name of a file, which is a bunch of numbers on the
Connection *--I have finished with the background ofhard drive. Those numbers get moved from the hard
the sketch, and now I am going to draw a picture of adrive into memory into the modem and back to your
couple of boats in a bay, each with a two- way radio. Icomputer.Thats it! That is the essence of HTTP.The
grew up around boats and always liked listening intopoint is, to see why a geek can think something like
the chatter on the two-way radios. The followingHTTP is simple you need to think in layers like a geek.
conversations are from my memories of growing up,Thinking in layers is not some kind of zen like discipline
but the ideas are probably the same for cb and otherfor them, they probably do it without even being
forms of radio.The first boat we will call "Rock n Roll"aware of it as that is what their tools and languages
the second "Jazz". There was only one channel, and Iencourage. If a programmer was writing an HTTP
noticed that there was a protocol that everyoneprogram they may write something like:LowerLayer
seemed to follow (except on Sunday afternoons) toconnectTo: "Jazz".LowerLayer send: "GET
keep things orderly. I don't know if this protocol wasSuperbowlScore1987".LowerLayer out.The
written down anywhere as a set of specification rulesprogrammer who writes this is not thinking about the
or was just common sense. If Jazz wanted to calldetails of how the connection is established or how the
Rock n Roll they would wait until they heard themessage is sent. They may have no idea! When they
current conversation end with an "Over and Out".are working with HTTP they just assume the lower
They would wait a couple of seconds and then saylayer works. If they, or you, do want to understand the
something like "Rock n Roll, Rock n Roll, this is Jazz, dolower layer, then put HTTP out of your mind and read
you read me, over". If someone on Jazz was listening,up on the TCP/IP and DNS layers and specifications
they would say "Rock n Roll, this is Jazz, go ahead,(have fun, and have a good supply of coffee
over". Bingo!, they have a connection.The same kind ofready).Similarly, they are not trying to understand how
thing happens when you type an address into yourthe information that is received is displayed so nicely in
web browser and hit "Go". Your computer is justyour browser. That is a higher layer and yet another
moving a bunch of numbers to the modem. To keepspecification (HTML).I hope you enjoyed reading this
things simple, lets ignore that the modem is convertingarticle, it has taken an unusual perspective of HTTP! If
those numbers into sounds, and pretend that it is thoseyou want to read up on the details there are a number
numbers that are traveling out along your phone line.of good articles on the web and the HTTP
The reason sending numbers out along your phonespecification itself.