HTTP, een applicatieprotocolLaten we nu naar ons voorbeeld teruggaan. Web browsers en servers spreken een
applicatieprotocol dat bovenop TCP/IP wordt uitgevoerd,
door het eenvoudigweg als een manier te gebruiken om reeksen bytes heen
en weer door te geven. Dit
protocol wordt HTTP (Hyper-Text Transfer Protocol)
genoemd en we hebben reeds een commando ervan gezien -- het GET zoals
hierboven getoond.Als het GET commando naar de webserver van metalab.unc.edu met service
nummer 80 gaat, zal het naar een server daemon
luisterend op poort 80, worden verzonden.
De meeste Internetdiensten worden door serverdaemons
uitgevoerd die niets anders doen dan poorten in de gaten houden,
uitkijken naar en uitvoeren van inkomende commando's.Als het ontwerp van het Internet over de gehele linie gelijk zou zijn,
is het dat alle delen zo eenvoudig en mens-toegankelijk mogelijk zou
moeten zijn. HTTP, en daaraan gerelativeerde protocollen
(zoals het Simple Mail Transfer Protocol,
SMTP, dat wordt gebruikt om elektronische mail tussen
hosts te verplaatsen) maken in het algemeen gebruik van eenvoudige
afdrukbare-tekst commando's die met een carriage-return/line feed eindigen.Dit is marginaal inefficient; in een aantal omstandigheden zou je meer
snelheid kunnen krijgen door gebruik te maken van een
waterdicht-gecodeerd binair protocol. Maar ervaring heeft uitgewezen dat
de voordelen van commando's die gemakkelijk door menselijke wezens zijn
te beschrijven en begrijpen zwaarder wegen dan enig bijkomstig voordeel
in efficiëntie dat je zou kunnen krijgen ten koste van het maken
van lastige en onbevattelijke zaken.Daarom is wat de serverdaemon je terugzendt via TCP/IP ook tekst.
Het begin van de response zal er ongeveer zo uitzien (een paar
van de headers zijn achtergehouden):HTTP/1.1 200 OK
Date: Sat, 10 Oct 1998 18:43:35 GMT
Server: Apache/1.2.6 Red Hat
Last-Modified: Thu, 27 Aug 1998 17:55:15 GMT
Content-Length: 2982
Content-Type: text/htmlDeze headers zullen worden gevolgd door een lege regel en de tekst
van de webpage (waarna de verbinding wordt verbroken).
Je browser toont enkel die pagina.
De headers geven aan hoe (in het bijzonder vertelt de Content-Type header
het dat de geretourneerde gegevens in feite HTML zijn).