WWW - World Wide Web

Forelesningsnotat for forelesningen mandag 11. november 1996.

Referanse

Tanenbaum: 7.6 THE WORLD WIDE WEB side 681

Historie

Det som vi i dag kjenner som World Wide Web startet på CERN i Sveits i 1989. CERN er som kjent et Europeisk senter for forskning på kjernefysikk, og de gjennomfører komplekse eksperimenter med store partikkelakselleratorer for å observere naturens aller minste bestanddeler. I dette miljøet var det behov for å vedlikeholde og distribuere store mengder felles informasjon for en stor samling vitenskapsfolk som var spredt rundt omkring i verden, og måten å løse den utfordringen på ble starten på et helt nytt kapittel i databehandlingens historie. Som en kuriositet for oss nordmenn er det verdt å nevne at dokumentet som beskriver historien til World Wide Web starter med et program på en Nord-maskin med SINTRAN III.

CERN var lenge sentral i videreutviklingen av WWW, men den aktiviteten er nå overtatt av WWW-konsortsiet, som er et samarbeidsorgan som blir sponset av de store aktørene i databransjen.

Prinsipp

De viktigste delene av World Wide Web er dokumentene, serverne og klientene. En klient er et dataverktøy (program) som en bruker benytter for å lese dokumentene (Web-sidene). For å få tak i et dokument tar klienten kontakt med servere og ber om et bestemt dokument. Serveren finner dokumentet (filen) og sender det til klienten. Klienten viser det så fram (vanligvis på en skjerm) for brukeren. Kommunikasjonen mellom klient og tjener foregår med en egen applikasjonsprotokoll som kalles HTTP. Dokumentene i WWW kan inneholde aktive element (linker) slik at brukeren ved å velge (klikke på) en link kan få fram et annet dokument.

URL

URL er en forkortelse for Uniform Resource Locator, og vi kan tenke på det som en utvidelse av begrepene fil og katalog som vi kjenner fra annen databehandling. Det nye med URL i forhold til filer og kataloger, er at vi utvider begrepet til å gjelde maskiner på Internett, og også en angivelse av på hvilken måte filen skal hentes (protokoll).

Det generelle formatet på en URL er:

scheme://host.domain [:port]/path/filename

Der scheme er en av:

file
en fil på ditt lokale datasystem
ftp
en fil på en FTP-server som er åpen for anomnym-FTP
http
en fil på en WWW-server
gopher
en fil på en Gopher-server
WAIS
en fil på en WAIS-server
news
en gruppe i Usenet News
telnet
en telnet-forbindelse til en tjeneste
host.domain er navnet på maskinen på vanlig DNS-format.

port kan utelates hvis tjenestene er tilgjengelig på standard portnummer for den aktuelle protokollen.

path og filename er søkesti (katalognavn) og selve navnet på filen der dette er aktuelt.

HTML

HTML står for Hypertext Markup Language, og det er navnet på det "språket" som brukes for å definere strukturen i et dokument som skal brukes i WWW. HTML-dokument er vanlige tekstfiler. De omtales ofte som ASCII-filer selvom det er upresist. ISO-8859-1 er det tegnsettet som skal brukes, og det er nesten identisk med tegnsettet som brukes i Microsoft Windows. HTML-kan derfor lages med et så enkelt hjelpemiddel som Notisblokk i Windows, og vi kan skrive inn æøå og ÆØÅ uten å bruke spesielle koder.

TAG - merkelapp

I tillegg til vanlig tekst består et HTML-dokument av TAGS (tagger på nynorsk eller merkelapper på vanlig norsk). En tag er spesielle merker som angir strukturen i teksten. Merkene skilles fra den vanlige teksten ved at de har tegnet < foran og > bak. Merkene kan skrives både med store og små bokstaver, men det er ganske vanlig å bruke store, for å skille dem tydelig fra vanlig tekst. Det er også vanlig å bruke innrykk i HTML-dokument for å vise hvordan strukturen i dokumentet er. Alle "blanke" (mellomrom, linjeskift og tabulator-tegn) blir oversett av klientprogrammene når de formaterer dokumentene for framvising. Et lite HTML-dokument kan for eksempel se slik ut:
<html>
    <head>
        <TITLE>Datakommunikasjon III - WWW</TITLE>
    </head>
    <body>
        <H1>WWW - World Wide Web</H1>
        <P>Welcome to the world of HTML. 
        This is the first paragraph. While short it is 
        still a paragraph!</P>
        <P>And this is the second paragraph.</P>
    </body>
</html>
Merkene <html>, <head>, <title>, og <body> (og tilhørende slutt-merker) skal være med i alle dokument.

Linjeskift

Avsnitt

Overskrifter

HTML

HEAD

TITLE

TAG

TAG

Hypertext Transfere Protocol, HTTP

Hypertext Transfere Protocol, HTTP er den protokollen som brukes for å overføre Web-sider mellom server og klient.

HTTP 1.0

HTTP 1.0 er ikke egentlig en standard, for HTTP har blitt tatt i bruk fort, og på noen ulike måter. HTTP har vært i bruk helt siden 1990, men først nå i år, i mai 1996 kom det en RFC som beskriver protkollen. Det er Informal RFC 1945 med tittelen Hypertext Transfer Protocol -- HTTP/1.0

HTTP 1.1

HTTP NG

Problemer med WWW

World Wide Web har blitt populært og utrolig utbredt i løpet av svært kort tid, og det er ikke til å unngå at det har gått litt over stokk og stein, og at det i ettertid viser seg at ikke alt fungerer like godt. Men som vi kjenner til fra andre problem som har oppstått i Internett-sammenheng, så jobbes det på mange hold med å forbedre WWW. Jeg skal i dette avsnittet førsøke å beskrive noen av probleme og også hva som gjøres for å løse dem.

Bruk og misbruk av HTML

HTML brukes i dag på en annen måte en det var laget for i utgangspunktet. Det brukes i stor grad for å lage layout på sidene, mens det var designet for å informere om strukturen og det var tanken at layout skulle være opp til klient-programmet og brukerens preferanser. Mange av dem som i dag lager HTML-dokument har mye av sin tidligere erfaring fra bruk av grafiske progrmmer for å lage delikate trykksaker, og de tar med seg den tradisjoene over i WWW. Det gjøres utrolig mange krumspring for at sidene skal få et helt bestemt utsenede. Designerne glemmer ofte at det finnes svært mange ulike klient-progammer og at brukerne fritt kan velge om de vil se bilder, og hvilken font og skriftstørrelse de vil se på sin skjerm.

I WWW-konsortiet jobbes det nå med såkalte style-sheets. Det er maler som beskriver i større detalj hvordan et dokument skal se ut. Populært og enkelt kan vi si at strukturen skal defineres av HTML-kodene, mens layout vil bli definert av stilarkene.

Ineffetivitet i HTTP

Det er to årsaker til at HTTP ikke er så effektiv som vi kunne ønske oss. Den ene ligger i selve WWW-konseptet, mens den andre har å gjøre med hvordan protokollen er realisert.

WWW-koseptet oppmuntrer til at informasjon bare skal lagres et sted og at alle som vil ha tilgang til den informasjonen henter den ved behov. Ulempen med en slik organisering av informasjon, er at nettet blir mye belastet med å overføre den samme informasjonen til mange brukere.

Fra DNS systemet kjenner vi til at effektiviteten kan økes betraktelig ved at noder i nettet mellomlagrer (CACHE) informasjonen, og den samme teknikken blir nå tatt i bruk for WWW. Det settes opp såkalte proxy-servere og alle blir anbefalt å la sine forespørsler gå gjennom slike lokale mellomlager.

Selve HTTP har også blitt kritisert ganske mye fordi den åpner for mange TCP-forbindelser, også mot den samme serveren for å få tak i ulike deler av det dokument.

Det arbeides med en ny versjon, HTTPng som mellom annet skal ha bedre egenskaper på dette området.

Standardisering

Siden WWW har blitt utviklet og tatt i bruk så raskt, har standardiseringen kommet i bakleksa i forhold til programvareprodusentene. Disse (Microsoft og Netscape) har på sin side gjort det de kan for å lage spesielle utvidelser som skal knytte kundene til deres produkter. Det er vanskelig å se noen god løsning på dette prblemet, og det er sannsynlig at arbeidet med standardene fortsatt vil bli liggende etter.

URL kontra URN

URL-konseptet har også vist seg å ha ganske betydelige svakheter. Fordi URL en peker på en bestemt fil i en bestemt katalog på en navngitt maskin vil en URL bli ugyldig når informasjon reograniseres. Og vi opplever dette daglig ved at vi finner linker som bare produserer feilmeldingen "File not found".

Problemet ligner på IP-adresse kontra DNS-navn, og løsningen som er forelsått er å gå over fra URL til Universal Resource Name. Altså at man navngir ressurser og overlater til systemet å finne ut hvor ressursen befinner seg.

Problemet har vært kjent og diskutert lenge, og det er altså foreslått løsninger, men det ser ut til at det vil ta lang tid før dette blir satt ut i livet.