Webbprogrammering Webbservrar, severskript & webbproduktion 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 2
Överföring av webbsidor 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 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. 5
Datorpark i en organisation Internet Klient Webb server Skrivare Intranät DMZ FTP server Klient Klient Brandvägg Mail server 6
Webbservrar: Totalt antal sajter 7
Webbservrar: Alla sajter 8
Webbservrar: Aktiva sajter 9
Webbservrar: Toppsajterna 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 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 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 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 14
Webbservrar Begreppsförvirring - Hårdvara, mjukvara eller båda webbkurs.ei.hv.se är en webbserver (Apache) & en databasserver (MySQL) Epost server t.ex. Novell FTP server t.ex. Filezilla Port 21 Server 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 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 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. 18
Portar 80 webbserver 443 HTTPS 25 SMTP skicka mail 110 POP3 hämta mail 20/21 FTP 3306 mysql 1433 SQL server 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 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. 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. 22
Webbutvecklings process Webbutveckling liknar vanlig systemutveckling i stora drag Analys Underhåll Krav Tes4ng Design Utveckling 23
Analys Statiska/Dynamiska sidor, skriptmiljö, webbserver/os typ, databaskopplingar, cookies vs. sessioner,???? Stödja alla webbläsare?? 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 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 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 27
Felsökning Utveckling innebär felsökning cat /var/log/apache2/error.log 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 29
30