Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Podobné dokumenty
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

INFORMAČNÍ SYSTÉMY NA WEBU

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Instalace a konfigurace web serveru. WA1 Martin Klíma

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

1. Webový server, instalace PHP a MySQL 13

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

1 Webový server, instalace PHP a MySQL 13

Úvod do tvorby internetových aplikací

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

language="javascript">... </script>.

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Úvod do aplikací internetu a přehled možností při tvorbě webu

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Bakalářské. Vzdělání: Telefon: Ostrava. Bydliště: Ukázky práce: Správa a monitoring platformy provozované na AWS

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

CZ.1.07/1.5.00/

Principy fungování WWW serverů a browserů. Internetové publikování

HTTP protokol. Zpracoval : Petr Novotný

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Užitečné odkazy:

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

RESTful API TAMZ 1. Cvičení 11

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

WWW technologie. HTTP protokol

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Tvorba webových stránek. Ing. Radek Burget, Ph.D.

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Internet Information Services (IIS) 6.0

Programovací jazyky Přehled a vývoj

SYLABUS IT V. Jiří Kubica. Ostrava 2011

Olga Rudikova 2. ročník APIN

IS pro podporu BOZP na FIT ČVUT

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Počítačové sítě II. 18. World Wide Web, HTTP Miroslav Spousta,

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Střední odborná škola a Střední odborné učiliště, Hořovice

Stručný obsah. Část I Úvod. Část II Komponenty

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Platební systém XPAY [

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Projekt JetConf REST API pro vzdálenou správu

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice

Vývoj Internetových Aplikací

Tvorba internetových prezentací a portálů

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

AJAX. Dynamické změny obsahu stránek

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

- 1 - Smlouva o dílo. uzavřená podle 536 a násl. obchodního zákoníku v účinném znění

Vývojařská Plzeň AngularJS

w w w. u l t i m u m t e c h n o l o g i e s. c z Infrastructure-as-a-Service na platformě OpenStack

BI-VWS. Vybrané partie z administrace Webového Serveru Autetizace, autorizace a kontrola přístupu Apache httpd

MBI - technologická realizace modelu

Server-side technologie pro webové aplikace

Maturitní projekt do IVT Pavel Doleček

Střední odborná škola a Střední odborné učiliště, Hořovice

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

Příprava prostředí pro výuku PHP a MySQL

Případová studie: Adresářové řešení pro webhosting pomocí ApacheDS. Lukáš Jelínek

Web Services na SOAP

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

HMI * nad webovými technologiemi

Prototyping konfigurace linuxových serverů. horizontální škálování Deltacloud API

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Pohled pod pokličku spíš než na UI Využití jako platformy pro vývoj aplikací PV219 Jakub Kolář FI MU

Mediální komunikace. Vysoká škola mezinárodních a veřejných vztahů PhDr. Peter Jan Kosmály, Ph.D

Střední odborná škola a Střední odborné učiliště, Hořovice

Tvorba webových stránek

1. Struktura stránky, zásady při psaní kódu, MVC pattern. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Úvod do Web Services

Obsah. Předmluva Kapitola 1 Úvod 1. Web v kostce 1 Kdo je webmaster? 4 Doporučená literatura 4. Kapitola 2 Přehled jazyka HTML 5

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Platformy / technologie. Jaroslav Žáček

A p a c h e h t t p d Lukáš Zapletal lukas.zapletal@liberix.cz

Databázové a informační systémy

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Internet 2 css, skriptování, dynamické prvky

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Vývoj Internetových Aplikací

Stručný úvod pro programátory. Michal Kuchta

Transkript:

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 14.2.2017 Webové aplikace Úvod, web, HTTP komunikace - server/client, webový prohlížeč jako platforma, Apache

strana 2 Vyučující Ing. Jiří Lýsek, Ph.D. Ing. Oldřich Faldík Ing. Luboš Juránek https://akela.mendelu.cz/~lysek/ https://akela.mendelu.cz/~xfaldik/wa/

strana 3 Orientační program přednášek 1 Úvod, web, HTTP komunikace - server/client, webový prohlížeč jako platforma, Apache 2 PHP OOP, PHP a databáze, migrace DB, ORM, šablony, MVC/MVP, PHP frameworky 3 Autentizace, uživatelsky orientované aplikace, uživatelský model, l10n, i18n 4 Bezpečnost - SQL injection, cross site scripting,... 5 Komunikace a webové služby 6 Technologie - značkování, XML, XHTML, Validita, DOM, CSS, responsivní design 7 Základy JavaScriptu, události, OOP, práce s DOM 8 JS knihovny, jquery, jquery UI, regex, JSON 9 AJAX, AJAJ, zpracování na straně JS 10 RIA, Angular JS, Ember JS, React JS 11 Angular JS - šablony, controllery, routing+base tag, direktivy 12 Local storage, history, d&d, file api, HTML5 nové elementy - canvas, inputy

strana 4 Ukončení předmětu zápočet za projekt řešený během semestru nutné odevzdat 50% výsledné známky na konci nutné obhájit zkouška test na počítači (teoretická + praktická) 50% výsledné známky

Projekt - zadání - DS strana 5

strana 6 Co se naučíte? Tvorba webových aplikací pomocí HTML, CSS, JS a PHP Využití frameworků a knihoven Použití nástrojů pro vývoj webových aplikací Ladící konzola prohlížeče Vývojová prostředí (NetBeans) Podpůrné programy

strana 7 jinými slovy Tvorba webu je založena na znalosti mnoha technologií, programovacích jazyků a nástrojů Backend PHP, JS, Java, Ruby, Perl, Python, MySQL, Postgre, SQLite, "No-SQL", API, REST, XML, JSON, Frontend není snadné dělat to správně! HTML, CSS, JS, LESS, SASS, grafika,

strana 8 a dále Apache, NodeJS, TypeScript, NPM, Bower, Gulp, Grunt, Composer, Laravel, Nette, Symphony, Zend, Code Igniter, CakePHP, OpenCart, Prestashop, jquery, AngularJS, ReactJS, Handlebars, Bootstrap, Flux, RequireJS, Git, SVN, BitBucket, GitHub, Google maps, OpenStreetMaps, Leaflet,

strana 9 Co byste už měli znát Základy HTML, CSS, jazyka PHP a databáze PostgreSQL učí se v APV Principy relačních databází databáze, tabulka, sloupec, řádek, primární klíč, index, cizí klíč, relace (1:1, 1:n, m:n), normální formy Principy OOP

strana 10 Web/internet Moderní prostředí pro komunikaci Prostředí složené z propojených hypertextových dokumentů na různých serverech Prostředí služeb (např. zdrojů dat) dostupných na různých serverech

strana 11 Webová stránka Prezentace umístěná v prostředí internetu Slouží k předání určité informace Malá nebo žádná interakce Složena ze souborů (HTML, obrázky, CSS, minimum JS )

strana 12 Webová aplikace Aplikace spuštěná z webového serveru Velké možnosti interakce Uživatel pracuje pomocí "tenkého klienta" (prohlížeč) a spouští na serveru různé akce Data ukládá na server (obvykle databáze nebo cloudové služby)

strana 13 Webová aplikace Část klientská prezentace dat a navigačních nástrojů, možnost spouštět akce na serveru HTML, CSS, volitelně i více JS Část serverová stará se o modifikaci a ukládání dat PHP (nebo jiné) skripty úložiště (databáze, cloud)

strana 14 HTTP - HyperText Transfer Protocol protokol pro přenos dat mezi klientem a serverem port 80 bez šifrování nadstavba pro šifrování HTTPS (port 443) Nejvíce provozu na internetu je právě přes tento protokol

strana 15 HTTP - realizace HTTP server je program nainstalovaný na počítači Naslouchá na portu 80 (nebo 443) Vyřizuje požadavky od klientů Můžou se do něj instalovat moduly jako např. PHP/Perl Zde používáme Apache

strana 16 HTTP - výhody Jednoduchý textový Rychlý Spolehlivý

strana 17 HTTP - nedostatky Nemá relace spojení se naváže, přenesou se data a zavře se problém s autorizací a přenášením stavu aplikace Není možné iniciovat spojení ze strany serveru

strana 18 HTTP požadavek i odpověď hlavičky + tělo http://tools.ietf.org/html/rfc2616

strana 19 Ukázka v PuTTY - GET GET /en HTTP/1.1 Host: www.mendelu.cz 2x enter (tedy prázdný řádek)

strana 20 Ukázka v PuTTY - POST POST /file.php HTTP/1.1 Host: test.cz Content-Length: 20 2x enter parametr=hodnota&a=1 20 znaků enter

strana 21 HTTP metody GET pouze zažádá o poslání dat ze serveru POST zasílá větší data od klienta na server a další PUT, DELETE, HEAD, CONNECT, OPTIONS

strana 22 HTTP status kódy (odpovědi) 200 OK 201 Created 301 Moved permamently 302 Redirect 400 Bad request 404 Not found 500 Internal server error

strana 23 HTTP hlavičky Požadavek: Host: doména z URL User-Agent: prohlížeč Accept: datové typy Content-type: typ dat (POST,PUT) Odpověď: Location:... přesměrování Last-modified: datum změny Content-type: typ dat Na jednom serveru může být více

HTTP hlavičky strana 24

strana 25 URL - Uniform Resource Locator řetězec lokalizující zdroj nebo službu obsahuje protokol, server, port, autentizaci, cestu např.: https://login:heslo@akela.mendelu.cz:80/ ~vas_login/devel/index.php ftp://login:heslo@server.cz:21

strana 26 URL - parametry http://is.mendelu.cz/lide/clovek.pl?id=54010 Část za? jsou parametry odeslané v URL jsou to dvojce název=hodnota může jich být i více, oddělují se např. & např.: http://host.cz/index.php?param1=abc&param2=123

strana 27 URL - hash za znakem # na konci URL neodesílá se na server http://neco.cz?a=b#cokoliv

strana 28 Webový prohlížeč jako platforma Webový prohlížeč je prostředí pro spouštění webových aplikací dokáže zobrazit vaši grafiku/css dokáže spustit váš kód v JavaScriptu dokáže zprostředkovat rozhraní pro práci se soubory nebo jiným hardwarem (myš, klávesnice, GPS, )

strana 29 Webový prohlížeč jako platforma Klasicky: Aplikace spuštěná v PC na daném operačním systému Běžně nelze spustit v jiném OS Web: Aplikace spuštěná v prohlížeči, operační systém se neřeší Mohou být rozdíly mezi prohlížeči, ale obecně aplikace běží v jiném prostředí

strana 30 Webový prohlížeč jako platforma JavaScript je nejrozšířenější (nejdostupnější) prostředí pro programování právě díky rozšíření webových prohlížečů je to "Basic" dnešní doby je zdarma je trošku "jiný" prototypová dědičnost, dynamické typování něco řeší ES 2015

strana 31 Ukázky webových aplikací Google - Gmail, Drive/Docs, Maps, YouTube Seznam - Mapy, sreality, Zboží Facebook Microsoft - Office 365 A další: eshopy, konfigurátory, nástroje pro správu úkolů, time tracking, rozhraní webových hostingů

strana 32 Webové služby s API Důležitá je možnost službu využít ve vlastní aplikaci (zdarma nebo za poplatek) Mapy.cz, Google maps, platební brány. PayPal, Dropbox, Drive, lokalizace dle IP MashUp aplikace

strana 33 Pro vývoj "doma" Samostatná instalace: Apache, PHP, MySQL nebo PostgreSQL Balíčky pro Windows WAMP nebo XAMPP Na Linuxu - balíčky v repozitářích možná i virtualizace Server Akela adresář public_html/devel

strana 34 MySQL - mysql.com databáze síťová služba konfigurace: my.ini nastavit při instalaci kódování UTF-8 Open source varianta: MariaDB - mariadb.org

strana 35 Apache - httpd.apache.org web server síťová služba v podstatě vezme daný adresář na PC a zpřístupní jej jako HTTP službu konfigurece přes soubor httpd.conf zpřístupnění složek pluginy (php, mod_rewrite) vhost

strana 36 Apache HTTP server konfigurace soubor httpd.conf log soubory: access.log error.log kde jsou moje soubory DocumentRoot "D:/~web/www" DirectoryIndex index.html index.php index LoadModule php5_module path/to/php5apache2_4.dll PHP modul

strana 37 Apache HTTP server -.htaccess lokální nastavení pro server Apache v httpd.conf nastavit: AllowOverride All platí pro daný adresář/podadresáře pokud není definován jiný.htaccess soubor

strana 38 Apache HTTP server -.htaccess umožňuje: zaheslování adreáře (vynucení HTTP auth) omezení přístupu (podle IP) nastavení indexování složky (bez index.*) nastavení modulů mod_rewrite použití pro přepis URL -> SEO

strana 39.htaccess - zaheslování //.htaccess: AuthType Basic AuthName "My Protected Area" AuthUserFile /path/to/.htpasswd Require valid-user //.htpasswd: user:$apr1$jrh3ocz9$9opnksuaieekmwoamtx6y/

strana 40 Pretty (friendly, nice, semantic, ) URL a mod_rewrite Modul pro HTTP server Apache, na základě pravidel přesměruje HTTP požadavek soubor.htaccess regulární výrazy RewriteCond %{REQUEST_FILENAME}!-f RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] L = last QSA = query string append

strana 41 Pretty URL a mod_rewrite routing zpracuje parametr "q" a předá další parametry presenteru některé routery dokážou např. podle "id" načíst instanci modelu http://www.server.cz/clanek/detail?id=500 => http://www.server.cz/index.php?q=clanek/detail&id=500

strana 42 PHP - php.net instalováno jako zásuvný modul Apache dovolí skriptování na straně serveru, je nutné nastavit pro.php soubory konfigurace v php.ini memory limit execution time max upload pluginy

strana 43 PHP v rámci Apache statický soubor PHP skript

strana 44 PHP konfigurace - php.ini phpinfo(); pluginy zip, curl, gd2, xmlrpc, soap, mysqli, pdo, sqlite, mbstring, exif,

strana 45 PHP konfigurace - php.ini max_execution_time 30s memory_limit 32M post_max_size allow_url_fopen allow_url_include

strana 46 Memory limit a gd2 plugin Např. změna velikosti obrázku nezáleží na velikosti souboru v MiB záleží na velikosti v pixelech v paměti počítače pracujete s bitmapou 1920x1080 ~ 2MPix ale dnešní fotoaparáty mají mnohem víc! 2000000 * 24bit / 8 / 1024 = 5,7 MiB

strana 47 PHP alternativy Perl - CGI Java Python ASP.NET Groovy + Grails Ruby + Ruby on Rails (RoR)