• No results found

Administration: Grundläggande internetprogrammering

N/A
N/A
Protected

Academic year: 2022

Share "Administration: Grundläggande internetprogrammering"

Copied!
25
0
0

Loading.... (view fulltext now)

Full text

(1)

Administration: Grundläggande internetprogrammering

Verktyg för ”hands-on” internetprogrammering

2D2052 (ingint06) / 2D1335 (gruint06) Serafim Dahl

serafim@nada.kth.se

(2)

Administration: Vad kommer vi syssla med?

• Grundläggande om internet

– Protokoll, adresser, värddatorer – Märkspråk, HTML, XHTML

– Internetförbindelser, servrar (Java)

• ”Server-Side” programmering – CGI, Servlets (Java)

– JSP (Java Server Pages) och PHP

– ”3-tier”-system: JDBC (Java-SQL)

(3)

Administration: Vad kommer vi syssla med . . .

• ”Client-Side” programmering – Javascript

– CSS

– Applets (Java) och annat (ActiveX)

• ”Annat”

– XML, Web Services, den semantiska webben

– vad mer? Fältet är ganska öppet

(4)

Administration: Labbar

Labbarna är breda, inte djupa. Mycket att göra, men inget är svårt.

Mallar att utgå från.

• Grundläggande om nätverk och nätverksprogrammering. [Labb 1]

• Nätverksuppkopplingar. [Labb 2]

• ”Server-Side”-programmering. [Labb 3] och [Labb 4]

• ”Client-Side”-programmering. [Labb 5]

(5)

Administration: Projekt

Ni definierar era egna projekt enligt följande:

• Forma grupper om 3 eller högst 4 personer.

• Projektet skall framställa ett interaktivt automatiskt WWW-system, så bara HTML duger inte.

• Det måste ingå ”Server-Side”-programmering (t.ex. shopping, bokningssystem, resurshantering).

• Det måste ingå ”Client-Side”-programmering (t.ex. Javascript för kontroll av användarinmatning)

• Hög kvalitet på layout åstadkommen med CSS, inte hög komplexitet men bra användning av internet som medium.

• Skicka e-mail med c:a 5 rader som beskriver projektet och med lista över medlemmarna.

(6)

Administration: Lite av varje

• 11 föreläsningar. Kom på dem!

• 5 labbar (måste göras)

• 6 projektsessioner

• Kurskoder: inint06 / gruint06

• Registrera er på kursen:

Logga in på någon dator

res checkin ingint06

• För att få info om kursen då ni loggar in

course join ingint06

(7)

Grundläggande om nätverk

Introduktion till Internet

• Kursledare: Serafim Dahl

• Medhjälpare och gästföreläsare (XML):

Öjvind Johansson, som jobbar på Albanova

• Många bilder gjorda av Christian Bogdan och Björn Eiderbäck

(8)

Introduktion till Internet . . .

Innehåll

Lite om:

• nätverkskoncept

• webb-koncept

• internetadresser

• socketar (sockets?) Referenser:

• Harold: Java Network Programming

• Hall: Core Web Programming

• Deitel, et al: Internet and the World Wide Web How to Program

• Ince: Developing Distributed and E-Commerce Applications

(9)

Programmering av nätverksapplikationer

• Varför nätverksapplikationer?

– I takt med den tekniska utvecklingen blir det mer och mer vanligt med

kommunikation mellan applikationsprogram och med applikationsprogram som delas upp och kör på olika datorer.

– Exempel på program med asynkron kommunikation:

webläsare, email, news.

– Andra exempel: Distribuerade databaser, ljud, radio, video och internettelefoni.

• Behov av applikationsprogram där användarna är medvetna om varandras närvaro:

– Delade anslagstavlor, whiteborads, delade ordbehandlare, styrsystem (t.ex.

robotar) och (inte minst) spel.

• Finns stöd i dagens nätverk, där vi ska titta närmare på internet.

(10)

Programmering av nätverksapplikationer

• Mängder av siter av olika slag

– Auktioner, reklam, köporder, portaler med siter av samma slag samlade, affärer, musik, film, intressesiter, mjukvara, info, rapporter, böcker, sökmotorer,

undervisning, . . .

• Olika typer av applikationsprogram

– E-post – News

– Webbaserade – Databaser

– Klient-server, per-to-peer – Telefon

– Video – . . .

(11)

Nätverk

Ett nätverk är en samling av sammankopplade datorer och/eller annan utrustning

Termer:

• nod, en maskin i nätverket (dator, skrivare, brygga, läskautomat, . . . )

• värd (eng. host), fristående fullt autonoma datorer i nätet kallas värdar

• adress, varje nod i nätverket har en unik adress bestående av ett antal bytes

• paket, moderna nätverk är paketbaserade, d.v.s. att informationen bryts ner till och skickas som paket. Varje paket hanteras separat.

• protokoll, regler som specifierar hur kommunikationen i ett nätverk skall gå till

(12)

Internet

Inteernet är det mest kända nätverket och det mest spridda.

• Designat för robusthet (det blir sällan några fel)

• Första versionen 1969, ARPANET, konstruerat av ARPA, en enhet inom USAs försvar.

• 1983 var 562 datorer kopplade till ARPANET

• 1986 var 5000 datorer uppkopplade

• 1987 var det 28000, 1989 – 100000, 1990 – 300000

(13)

Lager (layer )

Ett nätverk är uppbyggt av flera lager

Nätverk (IP, ...) Transport (TCP, UDP, ...)

Applikation (HTTP, FTP, Telnet)

Applikation (HTTP, FTP, Telnet)

Transport (TCP, UDP, ...)

Nätverk (IP, ...) Fysiskt lager

(Ethernet, FDDI, LocalTalk, drivrutiner, ...) Logisk förbindelse

• Applikationsprogrammerare arbetar mest i det övre lagret

• någon gång i transportlagret (distribuerade tillämpningar)

• Övriga lager behöver man normalt inte bry sig om

(14)

IP, TCP, UDP

• IP, Internet Protocol

– protokollet för nätverksnivån (orsak till namnet ”Internet”)

• TCP, Transport Control Protocol

– ett anslutningsbaserat protokoll som säkerställer korrekt datautbyte mellan två noder

• UDP, User Datagram Protocol

– ett protokoll som tillåter skickande av oberoende paket från en nod till en annan utan garanti för att paketen kommer fram eller att de som kommer fram kommer i rätt ordning

(15)

IP-adress, DNS

• IP-adress, Varje dator identifieras av ett unikt 4-bytes-(32-bits-)tal

– Fast nummer för många datorer – dynamisk adresstilldelning för andra

– 1995 ”exploderade” internetanvändningen och då 32-bitars-adresserna inte räcker till (det blir ”bara” 232 = 4294967296 adresser) så har man skapat IPv6 som ger 2128 = 340282366920938463463374607431768211456 adresser. Bör ju räcka . . .

• DNS, Domain Name Server

– IP-adresser är svåra att komma ihåg så DNS skapades för att tillåta symboliska (textuella) namn som slås upp och översätts till IP-adresser

– Ex.: www.nada.kth.se ”översätts” till 130.237.225.40

(16)

Portar

• Varje dator med IP-adress har 65536 logiska portar för kommunikation med omgivningen.

• Vissa portar är reserverade

– portnumren 0-1023 är reserverade (till vad kan man på UNIX/Linux se i /etc/services där man även ser vad andra registrerat för portar) – t.ex. följande:

· port 7 för eko

· port 20-21 för ftp

· port 23 för telnet

· port 25 för smtp (skicka e-post)

· port 80 för http (webbserver)

· port 110 för POP3 (läsa post)

(17)

Intranet

Andra nät finns med samma uppbyggnad. Lokala nätverk brukar kallas intranet. De kan kopplas till internet med speciella ”bryggor”.

internet 51 52 53 54

192.168.0.199192.168.0.2

192.168.0.1

212.223.44.65

(18)

Klient-server-modellen

• Idag är klient-server (ibland klient-betjänt) -modellen den

förhärskande vid konstruktion av distribuerade samarbetande applikationsprogram.

– en klient ber en server om en tjänst (t.ex. att få reda på vad klockan är)

– en server utför tjänster åt klienter (t.ex. svarar på vad klockan är, skickar en fil från sitt lokala filsystem eller en webbsida)

(19)

Klient-server-modellen . . .

• Inte alla typer av applikationsprogram passar in i

klient-server-modellen. Somliga agerar både server och klient och om båda ”ändarna” i kommunikationen gör det kallas

kommunikationen för ”peer-to-peer ”.

Ex:

– en delad rit-editor

– spel (runescape, war craft, . . . ) – telefonförbindelse

(20)

RFC (Request for comments)

• Internetstandarder har utvecklats helt öppet, ofta publikt redan från prototypstadiet.

• Protokollen finns öppet tillgängliga på internet.

• Protokollen är indelade i nivåer:

– Obligatoriska, som varje “host” måste implementera, som t.ex. IP

– Rekommenderade, som bör implementeras, t.ex. TCP, SMTP, UDP, TelNet, . . . – Valfria, som t.ex. MIME

– Begränsade som oftast inte behövs (utom i specialfall) – Icke rekommenderade, som inte bör implementeras – Historiska, d.v.s. utgångna

– Informativa, t.ex. som konstruerats utanför RFC men är användbara eller som är nyttiga utan att erbjuda ett fastställt protokoll

(21)

HTTP, HTML, XHTML, MIME

• HTTP, HyperText Transfer Protocol,

– standardprotokoll för kommunikation mellan en webbserver och en webbklient

• HTML, HyperText Markup Language

– 1:a generationens standardspråk för webbsidekonstruktion, delmängd av SGML med hög feltolerans

– XHTML, eXtensible HTML,

2:a gen. språk för webbsidekonstruktion HTML som strikt delmängd av XML

• MIME, Multipurpose Internet Mail Extension

– öppen standard för hur multimediaobjekt ska skickas via e-post

(22)

URL, URI, URN

• URI, Uniform Resource Identifier

– definierar hur en resurs entydigt identifieras på internet – har undergrupperna URL och URN

• URL, Uniform Resource Locator

– referens för en adress på internet

– ser ut så: protokoll://värd[:port]/sökväg/fil[#avdelning]

– ex:

http://dupond.kth.se:8085/onweb/contents#schema]

• URN, Universal Resource Name

– ”pekare” till resurs utan angivande av dess exakta placering , t.ex. sökning på en viss kategori av dokument ger alla de URLer där alla dokumenten finns

(23)

SGML & HTML

• SGML, Standard Generalized Markup Language

– skapades under tidigt 70-tal

– beskriver en texts semantik snarare än hur det ska presenteras.

• HTML, HyperText Markup Language

– skapades under tidigt 90-tal ur SGML

– beskriver hur en text ska presentation snarare än dess semantik.

– är ”lingua franca” för presentation av hypertext på webben

(24)

HTTP

• HTTP, HyperText Transport Protocol

– standard som beskriver hur en webbklient och en webbserver utbyter data – använder MIME för avkodning av data

– använder TCP/IP för överföring av data

– klienten skickar ett meddelande (när kontakten redan är etablerad), t.ex.

GET /index.html HTTP/1.1

– webbservern svarar genom att skicka index.html till klienten

(25)

MIME

• MIME, Multipurpose Internet Mail Extension

– öppen standard för hur multimediaobjekt ska skickas via e-post – anger typen för de data som skickas, t.ex.

· text/plain, text/html

· news

· application/postscript, application/pdf

· zip

· image/gif, image/jpeg, image/tiff, image/x-bitmap

· audio/basic, audio/mpeg

· video/mpeg, video/quicktime, video/x-msvideo

References

Related documents

Att jag kollar på reklamen mer ingående och ana- lyserar mer och tänker om jag tycker om det eller inte om det är en produkt som jag tycker om eller inte… så där kan man ju få

Jag ser tre huvudsakliga områden där utvecklingen inom virtuella världar kommer att påverka företagandet och samhället i stort. 1) Arbetsmarknaden kommer att bli mindre

Detta uppdrag, att lyfta fram åtgärder för att minska utsläppen av koldioxid, kan ses som ett bidrag till detta arbete.. För att nå ett långsiktigt hållbart samhälle

andraspråksutveckling. Under VFU på lärarprogrammet har jag befunnit mig i ett mångkulturellt område där många barn inte har svenska som modersmål. Ofta har jag sett barn som

Håkansson (1998) upp- märksammar barns tendens att övergeneralisera verbet kommer, så att grundbetydelsen 'förändring' hos verbet förs över till nya kontexter och verbet

V2-ordföljden är typisk bland germanska språk och förekommer också i svenskan, och det är när satsens finita verb står i presens som den tyska och svenska ordföljden

Innan har vi främst tagit upp mänskliga rättigheter ur ett mer traditionell perspektiv, där frågor om politik och yttrandefrihet varit centrala, säger Norman Tjombe, chef för LAC

Han bor i El Aaiún i den ockuperade de- len av Västsahara, men han har lyckats ta sig till Åland för att delta i Emmaus Ålands som- marläger.. Här fi nns också tre andra