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
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.
Christian Ohlsson 4
Telnet webbkurs.ei.hv.se 80
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
Christian Ohlsson 6
Internet
Intranät DMZ
Brandvägg
Webb server
FTP server
Mail server
Klient
Klient
Klient
Skrivare
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
Christian Ohlsson 13
”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
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)
Christian Ohlsson 15
Server
Webbserver t.ex. Apache
DB server t.ex. MySQL
FTP server t.ex. Filezilla Epost server
t.ex. Novell
Por
t 21
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 19
netstat -l
Klient (webbläsare) Webbserver HTTP Request + User Data
HTTP Response
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.
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
Christian Ohlsson 23
Analys
Krav
Design
Utveckling
Tes4ng
Underhåll
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
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