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