Administration: Grundläggande internetprogrammering Verktyg för hands-on internetprogrammering 2D2052 (ingint06) / 2D1335 (gruint06) Serafim Dahl serafim@nada.kth.se gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 1 av 25
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) gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 2 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 3 av 25
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] gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 4 av 25
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. gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 5 av 25
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 Administration: Lite av varje För att få info om kursen då ni loggar in course join ingint06 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 6 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 7 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 8 av 25
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. gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 9 av 25
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... gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 10 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 11 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 12 av 25
Lager (layer) Ett nätverk är uppbyggt av flera lager Applikation (HTTP, FTP, Telnet) Transport (TCP, UDP,...) Nätverk (IP,...) Logisk förbindelse Applikation (HTTP, FTP, Telnet) Transport (TCP, UDP,...) Nätverk (IP,...) Fysiskt lager (Ethernet, FDDI, LocalTalk, drivrutiner,...) 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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 13 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 14 av 25
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 2 32 = 4294967296 adresser) så har man skapat IPv6 som ger 2 128 = 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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 15 av 25
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) gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 16 av 25
Intranet Andra nät finns med samma uppbyggnad. Lokala nätverk brukar kallas intranet. De kan kopplas till internet med speciella bryggor. internet 212.223.44.65 192.168.0.1 192.168.0.199 51 52 53 54 192.168.0.2 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 17 av 25
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) gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 18 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 19 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 20 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 21 av 25
URI, Uniform Resource Identifier URL, URI, URN 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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 22 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 23 av 25
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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 24 av 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 gruint06/ingint06, intro + intro till internet Föreläsning 1, bild 25 av 25