Webbprogrammering Webbservrar, severskript & webbproduktion Christian Ohlsson 1 Vad är en webbserver § En webbserver är en tjänst som lyssnar på port 80. § Den hanterar tillgång till filer och kataloger genom att kommunicera med protokollet HTTP (HyperText Transfer Protocol) § Varje nytt anrop skapar en ny process eller startar en ny tråd Christian Ohlsson 2 Överföring av webbsidor Christian Ohlsson 3 Så fungerar det § När en webbsida knappas in, exempelvis www.hv.se/meny.html skickar webbläsaren en förfrågan till webbservern. § GET http://www.hv.se/meny.html HTTP/1.1 § Filen meny.html hämtas hem och läses av webbläsaren. § Om filen innehåller exempelvis en bild skickas en förfrågan efter den separat. Telnet webbkurs.ei.hv.se 80 Christian Ohlsson 4 Var skall webbservern placeras § Ur säkerhetssynpunkt skall en publik webbserver placeras i en sk. DMZ (DeMilitarized Zone) och en intern webbserver på internnätet. Christian Ohlsson 5 Datorpark i en organisation Internet Webb server Klient Skrivare Intranät DMZ FTP server Klient Klient Brandvägg Christian Ohlsson Mail server 6 Webbservrar: Totalt antal sajter Christian Ohlsson 7 Webbservrar: Alla sajter Christian Ohlsson 8 Webbservrar: Aktiva sajter Christian Ohlsson 9 Webbservrar: Toppsajterna Christian Ohlsson 10 Olika webbservrar § Dedikerad server § GNU/Linux § Windows server § MacOSX § Windows § Internet Information Server IIS - lägg till Windowskomponent § XAMPP § GNU/Linux § Installera Apache eller nginx § Mac § XAMPP eller MAMP m.fl Christian Ohlsson 11 Apache Apache är den ledande webbservern på internet Baserad på NSCA’s HTTPd Stöd för CGI, PHP, JavaServer Pages, osv… GPL-licens. Fri att distribuera samt att källkoden finns tillgänglig § Mycket stabil § Säker § Finns för *NIX, Windows, osv… § § § § Christian Ohlsson 12 GPL ”Free software” is a matter of liberty, not price. To understand the concept, you should think of ”free” as in ”free speech,” not as in ”free beer.” Richard M. Stallman Christian Ohlsson 13 IP-adress § En dators unika adress (ungefär som telefonnummer) § 193.10.202.79 § Kan motsvaras av ett namn § disco.hv.se § DNS – Domain Name Server § Översätter namn till IP-nummer Christian Ohlsson 14 Webbservrar § Begreppsförvirring - Hårdvara, mjukvara eller båda § webbkurs.ei.hv.se är en webbserver (Apache) & en databasserver (MySQL) Port 21 Epost server t.ex. Novell FTP server t.ex. Filezilla Server Christian Ohlsson DB server t.ex. MySQL Webbserver t.ex. Apache 15 Dynamiska sidor § Dynamiska sidor syftar på sidor som erbjuda föränderlig innehåll med hjälp av skript av olika slag och databaser. § CGI § Serverskript § PHP § ASP.net § JSP Christian Ohlsson 16 Steg för steg – surfa till en sida 1. Webbläsaren bryter ner URL i tre delar: • Protocol t.ex. http • Serverns namn t.ex. www.w3.org • Filnamn “html/index.html” 2. Webbläsaren pratar med DNS (Domain Name Server) och översätter www.hv.se till en IP adress t.ex. 193.10.199.201 3. Webbläsaren kopplar sig till servern på port 80. Webbservern på servern är inställt att lyssna på port 80 Christian Ohlsson 17 Steg för steg – surfa till en sida 4. Enligt HTTP så skickas en GET förfrågan (request) for filen http://www.w3.org/html/ index.html 5. Servern skickar innehållet som text till webbläsaren. 6. Webbläsaren tolkar HTML, CSS, JavaScript, m.m och visar upp resultatet. Christian Ohlsson 18 Portar § § § § § § § 80 – webbserver 443 HTTPS 25 – SMTP – skicka mail 110 – POP3 – hämta mail 20/21 FTP 3306 mySQL 1433 SQL server Christian Ohlsson netstat -l 19 Serverskript • Serverskript är skriptmiljöer som är installerade och sammanlänkade på webbservern • Serverskript kod exekveras på webbservern och svar skickas tillbaka oftast som (X)HTML till webbläsaren. • De populäraste idag är PHP, ASP.NET, PERL & JSP. Klient (webbläsare) HTTP Request + User Data Webbserver HTTP Response Christian Ohlsson 20 Hur hanterar webbservern serverskript? § Förfrågningar efter serverskript sker. § Webbservern skickar dynamiska innehåll som omringas av speciella tecken till lämplig kompilator § PHP använder <?php kod ... ?> § ASP.NET & JSP använder <% kod ... %> § Skriptspråk parsern kör koden som blir oftast (X)HTML. § Webbservern returnerar det färdiga (X)HTML dokument. Christian Ohlsson 21 Databaser § En nyckelingrediens i dynamiska sidor är att hantera lagrade information, oftast i databaser. § På webbkurs.ei.hv.se finns en MySQL databasserver § Ni ska skapa tabeller i er databas på MySQL där data kan lagras/ändras/läsas osv. Christian Ohlsson 22 Webbutvecklings process § Webbutveckling liknar vanlig systemutveckling i stora drag Analys Underhåll Krav Tes4ng Design Utveckling Christian Ohlsson 23 Analys § Statiska/Dynamiska sidor, skriptmiljö, webbserver/OS typ, databaskopplingar, cookies vs. sessioner, ???? § Stödja alla webbläsare?? Christian Ohlsson 24 Design § Ta fram en primär design med färger, typsnitt, grafik, osv. § Kanske mha skärmdumpar från grafikprogram § Photoshop kan hjälpa till med en del här Christian Ohlsson 25 Struktur § Ta fram en primär struktur med en huvudsida, navigation, undersidor, osv. § Satsa på att följa W3C standarder § Skilja helt på struktur och design Christian Ohlsson 26 Logik/algoritmer § Utveckla sidorna… § Tänk på § Flödesschema över händelserna, bryta ner varje steg i mindre steg, skapa pseudokod. § Underlätta underhåll § Återanvändning av kod, funktioner/klasser. § Kommentarer § KISS Christian Ohlsson 27 Felsökning § Utveckling innebär felsökning cat /var/log/apache2/error.log Christian Ohlsson 28 Ett exempel case § Vår fiktiv case är att skapa en sajt som säljer böcker § Webbhotel, miljö (windows, linux, apache, IIS, osv..) § Utvecklingsmiljö (php, .net, java, osv..) § Vilka funktioner ska vara med ?? § Design och struktur ?? § Iterativ process Christian Ohlsson 29 Christian Ohlsson 30