30
Christian Ohlsson 1 Webbprogrammering Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion - media.hv.semedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/02/... · Steg för steg – surfa till en sida! 1. Webbläsaren bryter

  • Upload
    doannga

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Christian Ohlsson 1

Webbprogrammering

Webbservrar, severskript & webbproduktion

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.

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

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

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

Felsökning

§  Utveckling innebär felsökning

Christian Ohlsson 28

cat /var/log/apache2/error.log

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