Internet - interconnected nets
Første Internet (ARPANET) i slutningen af 60erne
udvikling finansieret bl.a. af det amerikanske forsvar
Formål: At skabe et robust decentralt netværk
første anvendelser: e-mail, konferencer, rlogin og hypertext (Engelbart)
Unix, UUCP udvikles 1971-76
også FTP og Ethernet
USENET News - elektroniske opslagstavler 1979
DNS navneservice introduceres i 1984
Internet Engineering Task Force etableres i 1989 skal styre udviklingen af Internettets tekniske standarder
Indtil da godt nok til edb-folk, men ikke til alm. brugere...
WWW introduceres i 1991 - gennembrud for almindelige brugeres anvendelse af Internet
1971: Email (komplet med @) opfindes af Ray Tomlinson og bliver hurtigt populært
1972: Verdens første chat-session. Telnet
1973: England kobles på ARPANET. Ethernet opfindes af Robert Metcalfe. FTP. Voice conferencing. Omkring 2000 brugere. Første opfordringer til øget sikkerhed
1974: TCP
1975: Første mailingliste
1978: TCP/IP
1979: USENET. Første MUD. :-)
1984: DNS indføres. Over 1000 hosts på Internettet
1986: NSFNET 56Kbps backbone. Internet Engineering Task Force (IETF) skabes
1987: 10.000 hosts
1988: NSFNET nu 1,544Mbps. IRC opfindes
1989: 100.000 hosts
1990: ARPANET -> Internet
1991: Gopher. World Wide Web introduceres af Tim Berners-Lee @ CERN. NSFNET nu 44,736Mbps
1992: 1.000.000 hosts
1993: http://www.whitehouse.gov/, Mosaic (den første udbredte grafiske Web browser)
1994: Første spam: Canter & Siegel. Banner ads
1995: Java, RealAudio. WWW nu mest brugte service på Internettet. Netscape IPO. Search engines. VRML
1996: MCI backbone 622Mbps. Browser war
1998: E-Commerce
1999: EU parlamentet foreslår forbud mod caching af Web sider. MCI/Worldcom backbone 2,5Gbps. MP3
2000: DDoS angreb mod Amazon, Yahoo mv. Fransk dom over Yahoo. Napster
2001: Email forwarding forbydes i Australien. Code Red og Sircam spredes
2003: SQL Slammer spredes over hele Internettet på ca. 10 minutter og lægger store dele af nettet ned
WWW er IKKE Internettet! WWW er en Internet service
WWW består af tre basale teknologier
URL: Uniform Resource Locator
Navngivning
HTTP: HyperText Transfer Protocol
Overførsel
HTML: HyperText Markup Language
Indhold
Client/server kommunikation baseret på fælles netværksstandarder og standardiserede dataformater
Problem: Hvorledes navngiver man effektivt alt på Internettet?
Protokol: Den service, der tilbydes (f.eks. ftp)
Maskinnavn: En unik maskine på Internettet
Lokal identifikation: En streng, der identificerer en resource på den pågældende maskine. F.eks. en sti og filnavn (som ovenfor)
Et SGML inspireret 'tagged ascii' format Dvs. formatterings- og struktureringskommandoer til Web browseren består af <tag1>tekst</tag1>
1989: Tim Berners-Lee fremsætter forslag om World Wide Web projektet på CERN i Schweiz
1990: Første Webserver og klient klar i december.
1991: WWW software tilgængelig for download på Internettet
1991-93: Protokoller defineres og revideres
1993: Marc Andreessen udvikler Mosaic på NCSA
1994: Tim Berners-Lee vælges til direktør for W3 Consortium Marc Andreessen & James Clark starter Netscape
1995: Digital åbner AltaVista for offentlig adgang 15. september Microsoft lancerer Internet Explorer
1996: Browser krigen bryder for alvor ud - Internet Explorer er gratis! HTML 3.2 introduceres
1998: Microsoft stævnes for sin opførsel i browser krigen E-Commerce bliver stort
2000: Microsoft kendes skyldig: ingen praktisk betydning. dot crunch
2002: Der skønnes at være ca. 3.000.000.000 sider på WWW
Primær kilde: http://info.isoc.org/guest/zakon/Internet/History/HIT.html
Internet
Publicering af dokumenter - 'Digitalt Bibliotek'
Nyheder
Reklame og 'Corporate Image'
Udveksling af dokumenter i interessegrupper mv.
Bestilling af varer og tjenesteydelser
Intranet (WWW mv. anvendt bag en 'firewall'):
Virksomhedsinformationer - personale, håndbøger mv.
I stigende omfang adgang til traditionelle informationssystemer
Diskussionsfora
Samarbejde (Eksempel: BSCW)
Browsere
Mozilla, Firefox, Microsoft Internet Explorer, Konquerer, Opera, Chimera, Safari, Mosaic, Lynx, W3M, HotJava, ...
Editorer
Microsoft Frontpage, Macromedia Dreamweaver, Adobe PageMill, Netobject Fusion, MS Office 2000, Emacs, JEdit, ...
Servere
Apache, Microsoft Internet Information Service, Netscape Enterprise Server, Jigsaw, ...
Filer der ønskes publiceret skal placeres i et forudbestemt offentligt tilgængeligt directory på brugerens konto typisk kaldet 'public_html'
Eksempler:
/users/bouvin/public_html/
/users/bouvin/public_html/hyper03
index.html i et directory kan adresseres med directory navnet alene
Eksempel:
http://www.daimi.au.dk/~bouvin/ og http://www.daimi.au.dk/~bouvin/index.html giver den samme side.
Filer kan kopieres til serveren med FTP eller via editorens upload eller publish funktion - eller bare kopieres til det mountede directory
MIME-types (Multipurpose Internet Mail Extensions)
HTML: (HyperText Markup Language) et simpelt programmeringssprog for tekst
PNG/GIF/JPEG: billedlagringsformater
SVG: vektorgrafik format
VRML: (Virtual Reality Modelling Language) et programmeringssprog for 3D verdener.
Quicktime/MPEG: videolagringsformater
RealMedia: streaming A/V
Shockwave/Flash: animationer lavet med Macromedia
...
En-vejs
Indlejret i kildeteksten til dokumenter
Point-to-node, point-to-point
Ingen typer (der er ganske få i standarden, men udnyttes ikke)
Links laves med anchor-tag <A> f.eks:
<A href= "title.html">..</A>
<A href= "title.html#section2">..</A>
<A href= "http://...">..</A>
<A href= "mycgi? a= no& b= yes">..</A>
Destinationer
en hel side
eller en navngiven destination:
<A name= "section2">..</A>
Indlejrede billeder og objekter
F.eks. <img src="...">
F.eks. <embed src="...">
Frameset benyttes til komposition af flere sider til én ny side
<FRAMESET border=1 COLS="60,*">
<FRAME SRC="ugesedler.html" MARGINHEIGHT=2
MARGINWIDTH=2 SCROLLING="no" NAME="ugesedler">
<FRAME SRC="uge8.html" NAME="usdisplay">
</FRAMESET>
En frame kan indeholde en default URL
Kan også navngives, så den kan anvendes som destination for andre URL'er
Frames kan indlejres, altså frames inden i frames inden i...
Når der er et FRAMESET i en side ignoreres BODY
ISMAP attribut specificerer, at der bruges et CGI script på serveren til at beregne link ud fra sendte koordinater
USEMAP attribut specificerer, at der bruges et lokalt MAP element i klienten til at beregne links ud fra sendte koordinater
Langt det mest udbredte
Eksempel:
<img src="navbar.gif" usemap="#map1">
...
<map name="map1">
<area href="guide.html" alt="Access Guide"
shape="rect" coords="0,0,118,28">
<area href="search.html" alt="Search"
shape="rect" coords="184,0,276,28">
<area href="shortcut.html" alt="Go"
shape="rect" coords="118,0,184,28">
<area href="top10.html" alt="Top Ten"
shape="rect" coords="276,0,373,28">
</map>
Interaktiv mekanisme der åbner for brugerens input til Webservere
Definerer standard brugergrænseflade objekter:
Checkboxes, radiobuttons, pushbuttons, fields, ...
Del af BODY elementet i HTML
Server-side interaktionen foregår via CGI protokollen
Støtter dynamisk generering af HTML sider
CGI-scripts udføres på server siden - typisk en UNIX maskine eller en Windows NT maskine
Der kan sendes parametre til CGI-scripts.
CGI - I/O
Post - læser parametre fra STDIN
Længden af input læses fra en "environment variabel" kaldet CONTENT_LENGTH
Get - læser fra en "environment variabel" kaldet QUERY_STRING
Ny HTML side skrives på STDOUT.
Skrives i et vilkårligt sprog, der kan håndtere environment variable og standard I/O strømme
C/C++, Java, BETA, Perl, Python,TCL, Unix shell scripts, Visual Basic, AppleScript, etc, etc
Eksempel på kald
http://www.daimi.au.dk/cgi-kgronbak/hyper/ main.py?reference=Bush&remark=pensum
Tillader opdeling af Web sider for lettere vedligeholdelse
Dele, der går igen på forskellige sider, ligger kun ét sted
Tidsstempling, betingelser, adgang til scripts
Serveren fortolker Web siden, når siden hentes
Access kontrol via en .htaccess fil:
AddHandler server-parsed .shtml
<Limit GET POST>
order deny,allow
deny from all
allow from 10.11.0.0/255.255.0.0
allow from 130.225.16.0/255.255.252.0
</Limit>
http://www.daimi.au.dk/~bouvin/hyper01/bscw.html
elements/footer.html
Et programmeringssprog, der kan blandes med HTML
Programmet fortolkes direkte af Webserveren inden siden leveres til browseren
F.eks. beregninger og opslag i databaser
Udviklet af danskeren Rasmus Lerdorf
Hoved reference http://www.php.net/
pas på, manualen er ~1500 sider...
Lokale kopier af PHP manual
Se under Links
<html>
<body>
<form action="action.php" method="post">
Your name: <input type="text" name="name">
You age: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<h2>
Hi <?php echo $name; ?>.<p>
You are <?php echo $age; ?> years old.
</h2>
</body>
</html>
Den centrale organisation for etablering af Web-relaterede standarder
Medlemskabet tæller alle "players" og en del forskningsinstitutioner
Meget W3C arbejde essentielt for udviklingen af WWW
URI/URL, HTTP, HTML, XHTML, CSS, DOM, ...
XML, XSLT, XSLT-FO, XML Schema, XLink, XPath, XPointer, XQuery, RDF, ...
SMIL, SVG, Timed Text, MathML, inkML, ...
...
"Design by Committee"
standarder designes i et samarbejde med de medlemmer, der har interesse deri (foruden undertiden indbudte ekspert deltagere)
Fra forskelligt hold er W3C blevet kritiseret for at skabe standarder, der enten ikke er behov for, eller som ligger udenfor W3C's område
Standard og implementation følges ikke ad
Det er stadig så som så med Web browsere, der implementerer CSS1 korrekt, og W3C arbejder i øjeblikket på CSS3...
På den anden side er W3C i en vanskelig situation, da de jo ikke kan tvinge nogen til at implementere deres standarder endsige gøre det korrekt...
Et eksempel på en (endnu ikke, i hvertfald) videre udbredt standard er XLink
i øjeblikket findes den eneste fulde og fungererende implementation af XLink her på stedet - 3 år efter XLinks offentliggørelse...
Reelt er W3C's største fjender "good enough" og almindeligt inerti
Hvorledes gør man sine Web sider tilgængelige for blinde og andre med perceptuelle/motoriske vanskeligheder?
Mange Web sites er karakteriseret ved et visuelt snarere end strukturelt layout
dette gør det meget vanskeligt at anvende en skærmlæser el.lign.
specielt slemt er sites bestående af primært imagemaps eller Flash navigation
Dette handler ikke blot om at give blinde/svagtseende adgang til sit Web site...
(skønt dét er et nobelt mål)
"Google is, for all intents, a blind user. A billionaire blind user with tens of millions of friends, all of whom hang on his every word. I suspect Google will have a stronger impact than [laws] in building accessible websites."
...
"In a world where Google likely has a valuation several orders of magnitude higher than any chrome such as flash, graphics, audio, interactivity, or "personalization", I see a heady revision." - Karsten M. Self
Anvend ikke frames!
de gør det svært for søgemaskiner at se, hvad der hører sammen
og de er bestemt ikke nemme for blinde brugere
Begræns dynamikken
Skriv korrekt HTML
Bevar URL'er (de akkumulerer værdi!)
Brug ingen binære formater, som ikke forstås af Google etc.
Mere info på W3C's Accessibility sider
Oprindeligt var WWW tænkt og designet til at understøtte multiple platforme og multiple Web klienter
Dette gik tabt med dominansen af først Netscape Navigator og siden Microsoft Internet Explorer
Web sites, der kræver en bestemt browser er alt for almindelige
I mellemtiden er en række glimrende Web browsere vokset frem i IEs skygge
Efterhånden er teknologien moden til Web browsere på mobiltelefoner og anden håndholdt udstyr
Google-in-your-pocket er nu en realitet!
Disse browsere er typisk ikke så avancerede som PC ækvivalenterne
HTML 3-4, begrænset JavaScript og CSS, typisk ingen plug-ins
deres HTML parsere/renderers kan i sagens natur ikke være helt så komplekse (tilgivende) som i "rigtige" Web browsere, så værdien af korrekt HTML øges
Tiny SVG er på vej (bredt understøttet af mobilproducenterne)!
Krav til nye Web sider:
overskuelig navigation
mere tekst / færre (store) billeder
markup baseret på struktur snarere end præsentation
Databaser med inverterede index vedligeholdes af såkaldte "webcrawlers" eller "spiders"
Skånsom automatisk følgning af links og indexering af fundne dokumenter
Inverteret index...
Bush, {http://www.imv.au.dk/~fisken/trail, http://www.daimi.au.dk/~piparum/gruppe4.html,...}
Nelson, {http://www.imv.au.dk/~fisken/trail, http://www.daimi.au.dk/~piparum/gruppe4.html,...}
Søgning, opslag via Forms og CGI-scripts, der laver forespørgsler (queries) på database med index
Maskinpark: 30000-60000 Linux PC'er
2500-5000 terabyte lager
1,5 milliard indekserede Web sider
Reindekseres en gang om måneden
Bedømmer bl.a. en side ud fra hvor mange der linker til den
PageRank
Mindsker risikoen for "Meta spamming"
Googles succes er baseret på PageRank
en virkelig god idé, da den kom frem
Men! F.eks. Blogs praktiserer incestiøs linking, hvilket kan give (falsk) høj PageRank
Ligeledes kan link spammers forsøge sig med "AstroTurf" kampagner med samme resultat
PageRank virker stadig, men der bliver utvivlsomt skruet en del på algoritmerne hos Google
Givet værdien at have sine sider højt på søgelisten, vil der fortsat være en kamp mellem søgemaskinefolk og Websideejere
DHTML anvendes i stigende grad som interface til applikationer
Stort set alle form-baserede applikationer (og dét er mange!) kan mere eller mindre frit oversættes til en Webbaseret løsning
Voila! En platformsuafhængig (sådan da) applikation
Er fremtiden virkelig en reimplementation af GUI i Web browsere?
WWW har betydet utroligt meget for Internettets udbredelse
I kraft af sin simple arkitektur (og det rigtige tidspunkt) er WWW i dag den suveræn største samling af information
WWW har en simple og let udvidbar arkitektur, der gør det meget nemt at anvende WWW til alskens formål
Teknologierne bag WWW er vokset i både antal og kompleksitet, hvilket kan være problematisk at understøtte