Slides [Format: PDF, Storlek: 30 slides/3.5Mb]

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