Serverové skriptovací technologie

Transkript

Serverové skriptovací technologie
Serverové skriptovací technologie
4IZ228 – tvorba webových stránek a aplikací
Jirka Kosek
Poslední modifikace: $Date: 2011/11/10 17:41:58 $
Copyright © 2000-2011 Jiří Kosek
Obsah
Úvod ........................................................................................ 3
Základní principy generování stránek na serveru ....................... 4
Interakce s webovou aplikací na serveru ................................... 5
Nástroje pro dynamické generování HTML stránek ..................... 6
SSI .......................................................................................... 7
Server Side Includes .............................................................. 8
Ukázka ................................................................................ 9
Přehled příkazů ................................................................... 10
CGI skripty ............................................................................ 11
Rozhraní CGI ...................................................................... 12
Předávání parametrů přes rozhraní CGI .................................. 13
Další informace předávané pomocí CGI ................................... 14
Předání výstupu skriptu zpět web-serveru ............................... 16
Ukázky ............................................................................... 17
Ukázky ............................................................................... 18
Shrnutí .............................................................................. 21
FastCGI ................................................................................. 22
FastCGI .............................................................................. 23
Použití FastCGI .................................................................... 24
SAPI ...................................................................................... 25
ISAPI, NSAPI, WSAPI, … ....................................................... 26
ASP ........................................................................................ 27
Active Server Pages ............................................................. 28
Možnosti ASP ...................................................................... 29
Ukázka ............................................................................... 30
Ukázka ............................................................................... 31
PHP ....................................................................................... 32
Hypertextový preprocesor PHP .............................................. 33
Ukázka ............................................................................... 34
Ukázka ............................................................................... 35
Java a webové aplikace ......................................................... 36
Java servlety ....................................................................... 37
Java Server Pages ............................................................... 38
Ukázka JSP ......................................................................... 39
Ukázka JSP ......................................................................... 40
ASP.NET ................................................................................ 41
.NET .................................................................................. 42
ASP.NET ............................................................................. 43
Srovnání technologií .............................................................. 44
Přístupy k návrhu aplikací ..................................................... 45
Rychlost provádění aplikací ................................................... 46
Rychlost vývoje aplikací ........................................................ 47
Další zdroje informací ............................................................ 48
Další zdroje informací ........................................................... 49
Úvod
Základní principy generování stránek na serveru ............................ 4
Interakce s webovou aplikací na serveru ....................................... 5
Nástroje pro dynamické generování HTML stránek .......................... 6
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 3)
Základní principy generování stránek na
serveru
• na serveru je dynamicky generováno HTML na základě požadavku
uživatele
• do prohlížeče je odesílán již jen čistý HTML kód
• není potřeba žádný speciální prohlížeč, lze použít libovolný se základní
podporou HTML
• v případě potřeby lze na serverem generovaných stránkách použít i
klientské technologie (např. JavaScript)
Úvod
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
1 / 33 (strana 4)
Interakce s webovou aplikací na serveru
• lze použít vše, co vyvolá HTTP požadavek na webový server
• HTML formuláře
• odkazy
• automatické otevření nové stránky pomocí JavaScriptu
• obsah stránky se nemusí řídit jen požadavky uživatele, ale může záviset
i na externích vstupech (čas) – např. graf vývoje burzovního indexu
Úvod
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
2 / 33 (strana 5)
Nástroje pro dynamické generování HTML
stránek
• Server Side Includes (SSI)
• CGI skripty
• FastCGI skripty
• SAPI moduly a filtry
• Active Server Pages (ASP)
• PHP
• servlety
• Java Server Pages
• ASP.NET
• Ruby on Rails
• Django (Python)
• … a mnoho dalších, o nichž se ani nezmíníme
Úvod
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
3 / 33 (strana 6)
SSI
Server Side Includes ................................................................... 8
Ukázka ..................................................................................... 9
Přehled příkazů ........................................................................ 10
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 7)
Server Side Includes
• do HTML kódu se zapisují jednoduché instrukce, které zpracovává přímo
webový server
• to, že se v souboru mají hledat SSI, se pozná podle přípony souboru
(obvykle .shtml)
• syntaxe:
<!--#příkaz parametry-->
SSI
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
4 / 33 (strana 8)
Ukázka
Příklad 1. Vypsání aktuálního času
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head><title>První pokusný skript</title></head>
<body>
<h1>Aktuální čas: <!--#echo var="DATE_LOCAL"--></h1>
</body>
</html>
SSI
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
5 / 33 (strana 9)
Přehled příkazů
#include
načtení externího souboru
#fsize
zjištění velikosti souboru
#flastmod
zjištění času poslední modifikace souboru
#echo
vypsání obsahu proměnné – DATE_GMT, DATE_LOCAL,
DOCUMENT_NAME, DOCUMENT_URI, LAST_MODIFIED,
QUERY_STRING_UNESCAPED
#exec
spuštění externího programu
#config
nastavení formátu výstupu ostatních příkazů
SSI
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
6 / 33 (strana 10)
CGI skripty
Rozhraní CGI ...........................................................................
Předávání parametrů přes rozhraní CGI .......................................
Další informace předávané pomocí CGI ........................................
Předání výstupu skriptu zpět web-serveru ....................................
Ukázky ...................................................................................
Ukázky ...................................................................................
Shrnutí ...................................................................................
Copyright © 2000-2011 Jiří Kosek
12
13
14
16
17
18
21
Serverové skriptovací technologie
(strana 11)
Rozhraní CGI
• CGI – Common Gateway Interface
• rozhraní definuje způsob komunikace web-serveru s aplikací
• CGI skript je program, který používá rozhraní CGI
• CGI skripty lze psát v téměř libovolném jazyce, stačí dodržet konvence
rozhraní CGI
• shell, Perl, C/C++, Pascal, Python, …
• podpora CGI nebývá implicitní, musí se ve web-serveru zapnout
(bezpečnost)
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
7 / 33 (strana 12)
Předávání parametrů přes rozhraní CGI
• existují dvě metody – GET a POST
• způsob je určen přímo v HTML formuláři
<form ... method="post">
<form ... method="get">
• standardní je metoda GET
• před odesláním prohlížeč všechna data z formuláře zakóduje do jednoho
dlouhého řetězce
• název1=hodnota1&název1=hodnota2&...
• hodnoty polí jsou upraveny tak, aby je šlo zapsat jako součást URL
• mezera → +
speciální znaky, znaky s diakritikou apod. → %xx, kde xx je kód znaku
v šestnáctkové soustavě
• při metodě GET jsou zakódovaná data přidána za URL požadavku (za
znak ?)
• rozhraní CGI předá skriptu data v proměnné prostředí QUERY_STRING
• při metodě POST jsou data předávána v těle HTTP požadavku
• CGI skript je dostane na svůj standardní vstup
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
8 / 33 (strana 13)
Další informace předávané pomocí CGI
• kromě samotných dat z formuláře, předá web-server i další užitečné
údaje pomocí proměnných prostředí:
REQUEST_METHOD
určuje způsob předávání informací – GET nebo POST
QUERY_STRING
obsahuje data přenášená metodou GET
PATH_INFO
cesta, která má být zpracována skriptem; nejčastěji jde o část cesty
v URL za jménem skriptu
PATH_TRANSLATED
cesta ke stejnému souboru jako PATH_INFO; v tomto případě však byla
cesta přemapována podle konfigurace serveru
CONTENT_TYPE
MIME typ dat zasílaných metodou POST
CONTENT_LENGTH
délka dat zasílaných metodou POST
SCRIPT_NAME
URL právě prováděného skriptu
SERVER_NAME
jméno serveru
SERVER_PORT
číslo portu
SERVER_SOFTWARE
jméno a verze programu pracujícího jako WWW-server
SERVER_PROTOCOL
jméno a verze protokolu, kterým přišel požadavek (typicky HTTP/1.0
nebo HTTP/1.1)
GATEWAY_INTERFACE
označení a verze použitého rozhraní ke spuštění skriptu (typicky
CGI/1.1)
REMOTE_HOST
doménová adresa počítače, z nějž přišel požadavek
REMOTE_ADDR
IP-adresa počítače, z nějž přišel požadavek
AUTH_TYPE
způsob použité autentifikace uživatele
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
9 / 33 (strana 14)
Další informace předávané pomocí CGI
(Pokračování)
REMOTE_USER
v případě, že byl uživatel autentifikován, obsahuje tato proměnná jeho
jméno
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
9 / 33 (strana 15)
Předání výstupu skriptu zpět web-serveru
• veškeré informace se předávají přes standardní výstup
• nejdříve se posílají HTTP hlavičky
• pak prázdný řádek
• a nakonec samotná odpověď – typicky HTML kód
• web-server odpověď zachytí, doplní do ní chybějící hlavičky a pošle
klientovi
• vždy musíme vygenerovat alespoň hlavičku Content-Type, která určuje
druh odesílaných dat (nejčastěji text/html)
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
10 / 33 (strana 16)
Ukázky
Příklad 2. Vypsání aktuálního času v C
#include <stdio.h>
#include <time.h>
int main()
{
struct tm *aktualni_cas;
time_t aktualni_sekundy;
char s[80];
printf("Content-type: text/html\n\n");
printf("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head><title>První pokusný skript</title></head>
<body>
<h1>Aktuální čas: ");
time(&aktualni_sekundy);
aktualni_cas = localtime(&aktualni_sekundy);
strftime(s, 80, "%d.%l.%Y %H:%M:%S", aktualni_cas);
printf("%s", s);
printf("</h1>
</body>
</html>");
return 0;
}
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
11 / 33 (strana 17)
Ukázky
Příklad 3. Jednoduchý formulář v HTML
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<title>Ukázkový formulář</title>
</head>
<body>
<h1>Před vstupem do baru se prokažte</h1>
<form action="obsluha.pl">
<table>
<tr>
<td>Jméno:</td>
<td><input name="jmeno"></td></tr>
<tr>
<td>Věk:</td>
<td><input name="vek"></td></tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Vstoupit do ►
baru"></td>
</tr>
</table>
</form>
</body>
</html>
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
12 / 33 (strana 18)
Ukázky (Pokračování)
Příklad 4. Obsluha formuláře v Perlu
#!/usr/bin/perl
use CGI;
print "Content-type: text/html\n\n";
print <<EOF
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<title>Obsluha formuláře</title>
</head>
<body>
EOF
;
$query = new CGI;
print "Jmenuješ se <em>", $query->param('jmeno'), "</em><br>";
if ($query->param('vek') < 18)
{
print "a jseš moc mladý na náš bar";
}
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
12 / 33 (strana 19)
Ukázky (Pokračování)
else
{
print "a jsme rádi, že jsi přišel do našeho baru"
}
print <<EOF
</body>
</html>
EOF
Při psaní klasických CGI skriptů většinou používáme různé knihovny,
které umějí dekódovat data z formuláře.
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
12 / 33 (strana 20)
Shrnutí
• výhody:
• pro psaní skriptů lze použít téměř libovolný jazyk
• vývojář se nemusí učit nový jazyk
• nevýhody
• pro obsluhu každého požadavku je spouštěn nový proces
• pomalé a náročné na zdroje serveru
• na více zatížených serverech nelze vůbec použít
CGI skripty
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
13 / 33 (strana 21)
FastCGI
FastCGI ................................................................................... 23
Použití FastCGI ......................................................................... 24
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 22)
FastCGI
• vylepšená varianta rozhraní CGI, snižuje zátěž serveru
• každý skript se do paměti načítá jen jednou, pak postupně obsluhuje
další požadavky
• web-server s aplikací komunikuje pomocí TCP/IP
• web-server a aplikaci je možné rozdělit na samostatné počítače
• primitivní řešení load-balancingu
FastCGI
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
14 / 33 (strana 23)
Použití FastCGI
• na rozdíl od CGI, nepodporují FastCGI zdaleka všechny servery
• aplikace musí používat speciální knihovnu, která implementuje rozhraní
FastCGI
• C, Perl, …
• ukázka
use FCGI;
while(FCGI::accept() >= 0) # čekání na požadavek
{
# obsluha požadavku - stejná jako v případě CGI verze
}
• skript je v paměti vykonáván opakovaně, musíme dávat velký pozor
na přetečení paměti apod.
• ve skriptu můžeme používat vlastní čítač, a po určitém počtu
obsloužených požadavků skript ukončit, web-server si ho při dalším
požadavku sám znovu spustí
FastCGI
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
15 / 33 (strana 24)
SAPI
ISAPI, NSAPI, WSAPI, … ............................................................ 26
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 25)
ISAPI, NSAPI, WSAPI, …
• v průběhu času začala většina serverů nabízet kromě CGI rozhraní i
speciálně přizpůsobené rozhraní
• dnes nejpoužívanější je ISAPI – podporují ho servery Microsoftu a
mnohé další
• aplikace napsané pro SAPI mají většinou podobu DLL knihoven
• do paměti se podobně jako FastCGI skripty načtou při prvním požadavku
a pak v ní již zůstanou
• nelze rozdělit aplikaci a web-server
• SAPI moduly jsou binární nativní kód – pro tvorbu si musíme sehnat
vhodný kompilátor
SAPI
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
16 / 33 (strana 26)
ASP
Active Server Pages ..................................................................
Možnosti ASP ...........................................................................
Ukázka ...................................................................................
Ukázka ...................................................................................
Copyright © 2000-2011 Jiří Kosek
28
29
30
31
Serverové skriptovací technologie
(strana 27)
Active Server Pages
• přímo do HTML kódu se zapisují jednoduché příkazy
• ASP je jen jakýsi framework
• lze použít libovolný jazyk podporující Active Scripting
• standardně JScript a VBScript
• třetí firmy dodávají Perl, REXX, Python
• ve všech jazycích jsou dostupné základní objekty s důležitými
informacemi (data z formulářů apod.)
• standardní součást webových serverů MS
• podpora jiných serverů a platforem je velice slabá
ASP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
17 / 33 (strana 28)
Možnosti ASP
• k dispozici máme všechny funkce zvoleného jazyka (bohužel VBScript
a JScript jsou poměrně chudé jazyky)
• sada ASP objektů pro práci s
• požadavkem – data z formulářů apod.
• odpovědí – nastavování hlaviček
• další pomocné objekty – aplikační a session proměnné, …
• chybějící funkčnost se dodává pomocí COM objektů
• rychlé – píší se přímo v nativním kódu
• instalace a správa aplikace není jednoduchá, protože je roztroušená
na mnoha místech
ASP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
18 / 33 (strana 29)
Ukázka
Příklad 5. Vypsání aktuálního času v ASP
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head><title>První pokusný skript</title></head>
<body>
<h1>Aktuální čas: <%= Now() %></h1>
</body>
</html>
• <% ... %> – blok příkazů
• <%= výraz %> – vypsání hodnoty výrazu přímo do stránky
ASP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
19 / 33 (strana 30)
Ukázka
Příklad 6. Obsluha dat z formuláře
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<title>Ukázkový formulář</title>
</head>
<body>
Jmenuješ se <em><%= Request("jmeno")%></em><br>
<%
If Request("vek") < 18 Then
Response.Write "a jseš moc mladý na náš bar"
Else
Response.Write "a jsme rádi, že jsi přišel do našeho baru"
End If
%>
</body>
</html>
ASP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
20 / 33 (strana 31)
PHP
Hypertextový preprocesor PHP ................................................... 33
Ukázka ................................................................................... 34
Ukázka ................................................................................... 35
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 32)
Hypertextový preprocesor PHP
• přímo do HTML kódu se zapisují jednoduché příkazy
• jednoduchá syntaxe založená na C, Perlu a Javě
• speciálně navržený jazyk pro tvorbu webových aplikací
• velmi rozsáhlá knihovna funkcí
• nezávislost na platformě – může spolupracovat s v podstatě libovolným
serverem na libovolné platformě
• OSS – dostupný zdarma včetně zdrojových kódů
PHP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
21 / 33 (strana 33)
Ukázka
Příklad 7. Vypsání aktuálního času
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head><title>První pokusný skript</title></head>
<body>
<h1>Aktuální čas: <?php echo Date("r")?></h1>
</body>
</html>
• pro oddělování příkazů od HTML kódu se používají znaky <? a ?>
PHP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
22 / 33 (strana 34)
Ukázka
Příklad 8. Obsluha dat z formuláře
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<title>Ukázkový formulář</title>
</head>
<body>
Jmenuješ se <em><?php echo $_REQUEST["jmeno"]?></em><br>
<?php
if ($_REQUEST["vek"] < 18)
{
echo "a jseš moc mladý na náš bar";
}
else
{
echo "a jsme rádi, že jsi přišel do našeho baru";
}
?>
</body>
</html>
PHP
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
23 / 33 (strana 35)
Java a webové aplikace
Java servlety ...........................................................................
Java Server Pages ....................................................................
Ukázka JSP ..............................................................................
Ukázka JSP ..............................................................................
Copyright © 2000-2011 Jiří Kosek
37
38
39
40
Serverové skriptovací technologie
(strana 36)
Java servlety
• servlet je speciální třída zapsaná v jazyce Java
• web-server v sobě spustí JVM a v ní pak běží servlet
• podobně jako u ISAPI a FastCGI zůstává servlet po prvním načtení v
paměti a obsluhuje další požadavky
Java a webové aplikace
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
24 / 33 (strana 37)
Java Server Pages
• do HTML kódu se zapisují příkazy Javy
• k dispozici jsou podobně jako v ASP speciální objekty pro čtení dat z
formulářů apod.
• pro lepší oddělení designu a logiky lze definovat „tag libraries“ –
uživatelsky definované tagy, které volají předem připravené
komponenty
• o spuštění JSP se stará servlet, který JSP automaticky převede do Javy,
zkompiluje do byte-code a spustí
Java a webové aplikace
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
25 / 33 (strana 38)
Ukázka JSP
Příklad 9. Vypsání aktuálního času
<%@ page language="java" import="java.text.*, java.util.*" %>
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head><title>První pokusný skript</title></head>
<body>
<h1>Aktuální čas: <%= new Date() %></h1>
</body>
</html>
Java a webové aplikace
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
26 / 33 (strana 39)
Ukázka JSP
Příklad 10. Obsluha dat z formuláře
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<title>Ukázkový formulář</title>
</head>
<body>
Jmenuješ se <em><%= request.getParameter("jmeno")%></em><br>
<% if (Integer.parseInt(request.getParameter("vek")) < 18) { %>
a jseš moc mladý na náš bar
<% } else { %>
a jsme rádi, že jsi přišel do našeho baru
<% } %>
</body>
</html>
Java a webové aplikace
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
27 / 33 (strana 40)
ASP.NET
.NET ....................................................................................... 42
ASP.NET .................................................................................. 43
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 41)
.NET
• platforma Microsoftu s podobnými principy jako platforma Java
• aplikace se zdrojových kódů překládá do CIL (Common Intermediate
Language) – obdoba javového bytecode
• o spouštění CIL se stará CLR (Common Language Runtime)
• před spuštěním je vždy CIL převeden do nativního kódu (obdoba JIT
kompilace v Javě)
• Microsoft nabízí CLR pro Windows; existují i run-time pro další
systémy (např. Mono)
• existuje několik projektů, jejichž cílem je vytvoření CLR pro další
platformy (např. Mono pro Linux)
• všechny jazyky, které lze kompilovat do CIL (VB.NET, Managed C++,
C#, …) používají stejné knihovny (velká změna oproti předchozím
verzím jazyků)
• výborná podpora XML
• hlavní tři knihovny – webové služby, Web Forms (tvorba webových
aplikací), Windows Forms (tvorba „klasických“ aplikací)
ASP.NET
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
28 / 33 (strana 42)
ASP.NET
• s klasickými ASP nemá skoro nic společného
• vyvíjí se jako klasická klientská aplikace – prvky uživatelského rozhraní
a obsluha událostí
• ASP.NET si webový server přeloží do nativního kódu, který se stará o
postupné zasílání HTML kódu a obsluhu formulářových dat
• vygenerovaný kód detekuje použitý prohlížeč a tomu přizpůsobí
generovaný HTML a JavaScriptový kód
• VisualStudio.NET umožňuje aplikace vyvinout pouhým „naklikáním“
• později byly pro ASP.NET vytvořeny další nastavby – např. ASP.NET
MVC nebo Razor
ASP.NET
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
29 / 33 (strana 43)
Srovnání technologií
Přístupy k návrhu aplikací .......................................................... 45
Rychlost provádění aplikací ........................................................ 46
Rychlost vývoje aplikací ............................................................. 47
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 44)
Přístupy k návrhu aplikací
• „špagety“
• HTML kód je promíchán s aplikační logikou (příkazy)
• nepřehledné a neudržovatelné; zvláště pro větší projekty
• např. PHP, ASP, JSP
• Model-View-Controller (MVC)
• je oddělena aplikační logika (model), generování výstupů pro uživatele
(view) a průběh interakce (controller)
• velice čistý přístup, aplikace se lépe udržuje
• oddělené M-V-C znamená více práce a kódu
• např. J2EE, ASP.NET MVC, PHP s vhodným frameworkem
• komponentové frameworky
• aplikace se skládá z vizuálních komponent, které na pozadí generují
odpovídající HTML (+JS) kód
• vývojář je odstíněn od webové platformy (HTML, JS, HTTP, …)
• např. ASP.NET, JSF
• „moderní“ frameworky
• většinou staví na myšlence MVC, ale nenutí vývojáře psát a definovat
věci, které jsou zřejmé
• např. Ruby on Rails, Django
Srovnání technologií
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
30 / 33 (strana 45)
Rychlost provádění aplikací
• kompilované jazyky – velmi rychlé (pokud se nepoužije CGI)
• C, C++, Pascal, Java
• FastCGI, ISAPI, servlety
• interpretované jazyky – jsou pomalejší
• Perl, ASP, PHP
• většina aplikací je jednoduchá a zdržuje je práce s databází – menší
výkon většinou nevadí
• pro některé jazyky existují kompilátory (ASP.NET)
• rychlost lze zvýšit udržováním předkompilovaných skriptů v paměti
web-serveru (např. Zend Accelerator pro PHP)
Srovnání technologií
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
31 / 33 (strana 46)
Rychlost vývoje aplikací
• kompilované jazyky – pomalá
• po provedení každé změny je potřeba program rekompilovat (pracné
a pomalé)
• interpretované
• rychlé změny – stačí opravit zdrojový kód a dát v prohlížeči reload
• rychlý běh aplikací a rychlý vývoj zároveň → JSP, ASP.NET, …
• programátor pracuje pouze se zdrojovým kódem skriptu
• o kompilaci se automaticky stará webový server nebo jeho modul
Srovnání technologií
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
32 / 33 (strana 47)
Další zdroje informací
Další zdroje informací ............................................................... 49
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
(strana 48)
Další zdroje informací
1
• CGI
2
• FastCGI
3
• příklady servletů a JSP
4
• Perl
5
• JSP
6
• servlety
7
• PHP
8
• Zend – nové jádro jazyka použitého v PHP
9
• ASP.NET
10
• Ruby on Rails
11
• Django
12
• JSF
13
• seriál o Node.js
14
• úvod do Ruby on Rails
15
• seriál o Django
1
http://hoohoo.ncsa.uiuc.edu/cgi/interface.html
http://www.fastcgi.com/
3
http://www.archive.coreservlets.com/
4
http://www.perl.com/
5
http://java.sun.com/products/jsp/
6
http://java.sun.com/products/servlet/
7
http://www.php.net/
8
http://www.zend.com/
9
http://asp.net/
10
http://www.rubyonrails.org/
11
http://www.djangoproject.com/
12
http://java.sun.com/javaee/javaserverfaces/
13
http://zdrojak.root.cz/clanky/javascript-na-serveru-zaciname-s-node-js/
14
http://guides.rubyonrails.cz/
15
http://zdrojak.root.cz/clanky/django-uvod-a-instalace/
2
Další zdroje informací
Copyright © 2000-2011 Jiří Kosek
Serverové skriptovací technologie
33 / 33 (strana 49)

Podobné dokumenty

3. Základy programovacího jazyka Java

3. Základy programovacího jazyka Java (více informací na http://www.securingjava.com/chapter-two/chapter-two-8.html) nebo je možno ověřovat před spuštěním programu elektronický podpis kódu, těmito způsoby je tedy možno kód programu dob...

Více

Mezinárodní smluvní právo

Mezinárodní smluvní právo (1) Ve Sbírce mezinárodních smluv se vyhlašují sdělením Ministerstva zahraničních věcí a) platné mezinárodní smlouvy, jimiž je Česká republika vázána (dále jen "mezinárodní smlouvy"), b) oznámení o...

Více

Kaskádové styly

Kaskádové styly Copyright © 2000–2014 Jiří Kosek

Více

Multimédia a Web

Multimédia a Web TrueColor (dokonce i 48bitový TrueColor), v odstínech šedi apod. • alfa-kanál – pro každý bod obrázku lze určit jeho průhlednost • neumožňuje tvorbu animovaných obrázků • prokládání obrázků je opro...

Více

Řešení pro podporu rozhodování a cíleného marketingu

Řešení pro podporu rozhodování a cíleného marketingu SAPu. Podporujeme rovněž práci s tzv. Big Data či práci s daty v datových skladech. Nabízíme monitoring sociálních sítí, jako např. Twitter, Facebook, YouTube, LinkedIn a dalších.

Více

Mapování barev na typické případy užití ve webové aplikaci

Mapování barev na typické případy užití ve webové aplikaci První testovací skupinu tvoří studenti VŠE v Praze, absolventi kurzu 4IZ228 (Tvorba webových stránek a aplikací), kteří byli prostřednictvím hromadného emailu požádáni o vyplnění testu. Obecně je a...

Více

Úvod do datového modelování

Úvod do datového modelování příkazů SQL a příkazů pro řízení běhu. Jde o významné vylepšení standardních možností jazyka SQL dovolující nám používat parametry, deklarovat proměnné, větvit běh příkazů a taktéž možnost navracen...

Více

WebExpo Startup Campu

WebExpo Startup Campu z mála, který přináší praktické výsledky a jeho absolvování je baví – někteří dokonce mluví o nejlepším předmětu na FIS VŠE, se kterým se za své studium setkali. Více o předmětu a realizovaných pro...

Více

heppers

heppers programovacího jazyka Smalltalk (viz. např. [5]), její výskyt je typický při tvorbě grafického uživatelského rozhraní a značnou popularitu si rovněž získala v knihovnách tříd Swing programovacího j...

Více