User Tools

Site Tools

server_side_script

interaktivita na straně serveru

  • cíl: dynamické generování webového obsahu / rozhraní

typické znaky webových aplikací

  • tenký klient
    • aplikace potřebuje pouze prohlížeč, není nutno instalovat další software a hardwarové nároky jsou poměrně nízké
    • velmi nízké provozní náklady
  • bezestavovost
    • při této činnosti se neuchovává spojení s klientem - nelze přímo rozlišit, který klient zaslal který požadavek
  • cookies
    • malé textové soubory uložené na straně klienta
    • informace je posílána na server spolu s každým požadavkem - možno identifikovat jednotlivé klienty
    • vzniká virtuální spojení mezi klientem a webovým serverem
  • session proměnné
    • speciální proměnná, jejíž obsah je uchováván i při přechodu uživatele mezi jednotlivými stránkami
    • uchovávají se v paměti serveru a s klientem jsou svázány přes unikátní identifikátor uložený v cookies prohlížeče
  • prostředky skriptování
    • externí aplikace napojená na web server
    • aplikační server, který řeší i webový přístup
    • embedd skriptování

CGI (common gateway interface)

  • protokol na propojení externích aplikací s webovým serverem
  • → vyšší funkcionalita a interaktivita pro webové stránky
  • programem CGI může být jakýkoliv program spustitelný v OS
  • aplikace zpracuje nějaký skript ve webové stránce → webovému serveru vrátí statickou stránku → pak ji pošlou klientovi jako výsledek požadafku

rysy CGI

  • jsou závislé na platformě (OS)
  • vysoká systémová režie na zpracování jednoho požadavku
    • zadám požadavek → do paměti (mojí) je zaveden celý program → ten je spuštěn jako samostatný proces s vlastním paměťpvým prostorem → pak je program odstraněn z paměti
    • každý požadavek takhle nutí server vytvořit nový proces, což zatěžuje jednak procesor a jednak zabírá paměť
    • čím víc požadavků od klientů současně → tím horší výkon serveru
  • bezpečností riziko

princip

  1. prohlížeč shromáždí data z vyplněného formuláře (Ulice=Petrvaldska_129&Mesto=Ostrava)
  2. pak pošle požadavek na URL adresu (ta je uvedena v ACTION)
  3. HTTP server obdrží pomocí TCP/IP protokolu HTTP zprávu, kterou zpracuje a zjistí, jaká je metoda použita pro ten daný program (POST)
  4. začíná proces výměny informací
  5. webserver nastavuje proměnné prostředí (jméno serveru, metoda požadavku, typy obsahu, cesta ke skriptu apod.)
  6. HTTP server spustí programy s parametry zadanými pomocí URL
  7. CGI program načte proměnné z prostředí a zjistí, jaké metodě odpovídají (POST)
  8. CGI program přes standardní vstup (stdin) obdrží obsah těla HTTP zprávy (řetězce name-value) a rekonstruuje z něj formulářová data
  9. CGI program zavolá aplikační (mapový) server a přeloží požadavek do formátu nebo množiny proměnných, kterým mapový server může porozumět (jeden požadavek = jeden proces. Více současných požadavků = více současných procesů)
  10. aplikační server zpracuje požadavek - tzn. převede adresu na prostorovou informaci a vytvoří mapu, v jejímž středu se nachází požadovaná adresa. Pak pošle výstup zpět CGI skriptu
  11. CGI přidá k výstupu HTML kód a výsledek pošle HTTP serveru
  12. HTTP server obržuje výsledky a ukončuje CGI program
  13. pak se u mě, jakožto u klienta, zobrazí html stránka s obrázkem mapy

CGI+ serverová rozšíření

  • programy, které fungují v kontextu webového serveru a zpracovávají události serveru (HTTP požadavky)
  • na rozdíl od CGI zůstávají v paměti serveru a jsou připraveny k dalším službám, dokud se server nerozhodne, že už je nepotřebuje
  • v C++, složitá na programování
  • Microsoft ISAPI

komponentové technologie

  • knihovna ADO
    • používá se pro přístup k databázi v prostředí ASP
    • zaobaluje poměrně složitý přístup k datovým zdrojům do jednoduchého rozhraní

skriptovací jazyky v kódu stránky

  • zpravidla interpretované
  • neumožnují super programování (dědičnost)
  • nevyžadují striktě typování proměnných
  • program zpravidla promíchám s HTML kódem

PHP

  • skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek
  • skripty prováděny na straně serveru - k uživateli přenášen až výsledek jejich činnosti
  • obsahuje: rozsáhlé knihovny fcí pro zpracování textu, grafiky a práci se soubory, přístup k většině databázových serverů (MySQL, ODBC, Oracle, PostfreSQL, MMSQL), podporu celé řady protokolů (HTTP, SMTP, FTP, IMAP, POP3)
  • je dynamicky typový , má heterogenní pole, instalaci PHP na webovém serveru můžu provést buď pomocí přímého modulu (SAPI) pro webový server (APACHE, Netscape,…) nebo přes CGI procesor (php.exe), který zpracovává soubory s php skripty
  • uživatel může obdržet z jednoho HTML dokumentu s PHP skripty pokaždé jiný výsledek, aniž by se dozvěděl, jak je generován

ASP.NET (microsoft)

  • součást .NET Frameworku pro tvorbu webových aplikací a služeb
  • založen na CLR (Common Language Runtime) - sdílen všemi aplikacemi postavenými na .NET Frameworku
  • aplikace jsou rychlejší (u skriptovacích stránek jsou stránky při ∀ přístupu znovu a znovu parsovány)
  • ASP.NET WebForms - ulehčuje přechod od programování klasických aplikací pro Windows do prostředí webu:
    • Controls, Button, Labels
    • prvkům lze přiřazovat vlastnosti či zachytávat události
    • View State, Session State
  • je to lepší verze než ASP, novější!!!
    • díky kompilovanému kódu běží aplikace rychleji a více chyb je zachyceno už při vývoji
    • uživatelsky definované ovládací prvky lze použít jako šablony ⇒ významná redukce duplicity kódu
    • můžu si vybrat hodně programovacích jazyků

ASP

  • ACTIVE SERVER PAGES
  • technologie nezávislá na programovacím jazyce
  • od Microsoftu
  • kód je vykonáván na straně serveru
  • programovací jazyky: VBScript, Jsript
  • pomocí ASP lze kombinovat HTML stránky, skripty, COM komponenty → interaktivní webové stránky nebo výkonné webové aplikace

DOT NET

  • soubor technologií v softwarových produktech, které tvoří celou platformu, dostupná pro web, desktop, mobile
  • základní komponentou je Microsoft .NET Framework - prostředí potřebné pro běh aplikací a nabízející jak spouštěcí rozhraní, tak potřebné knihovny
  • je jedno jaký programovací jazyk použiju (C#, VB.NET)
  • protože vždycky si to překládá do mezijazyka
  • CIL (Common Intermediate Language)
    • standardizovaná specifikace jádra .NET
    • nezávislý na HW platformě
    • specifikace definuje prostředí, které umožňuje používání více vysokoúrovňových programovacích jazyků na různých platformách, aniž by bylo nutné přepisovat jejich překladače s ohledem na zvláštnosti konkrétní architektury
  • CTS (Common Type System)
    • sada datových typů a operací, které se používají v mnoha programovacích jazycích
  • metadata
    • informace o struktuře programu je popsána jazykově nezávislým způsobem, takže může být zpřístupněna z různých jazyků a prostřednictvím různých nástrojů
  • CLS (Common Language Specification)
    • sada základních pravidel, která by měl splňovat každý jazyk vyhovující specifikaci CIL
  • VES (Virtual Execution System)
    • používá metadata k tomu, aby zajistil spolupráci samostatně vytvořených kusů kódu za běhu programu

JSP (Sun)

JAVA

  • platformě nezávislý programovací jazyk
  • objektově orientovaný
  • je to i platforma
    • obsahuje velmi mnoho již hotových knihoven tříd - pro vytváření grafických rozhraní, přes třídy pro přístup k databázím, až po šifrování a kompresi dat
    • + knihovny a funkce ve formě API
  • VM (Virtual Machine)
    • abstraktně definované prostředí spolu s příslušným emulátorem → pro různé OS pouze jedno rozhraní → jednotlivá volání za běhu převáděna do skutečné platformy
  • co z toho můžu udělat:
    • applety (spouští se jako část stránky)
    • desktop aplikace
    • CGI aplikace (spustitelný program, který zpracuje předané parametry a výsledek zapíše jako na standardizovaný výstup)
    • Java Servlety a JavaServer Pages (JSP) (umožňují na straně serveru dynamické generování dokumentů jako HTML, XML)
  • platformy
    • Standard Edition - pro stolní PC
    • Enterprise Edition - pro aplikační servery
    • Micro Edition - pro mobily, mp3 apod

Servlet a JSP

  • Java Servlet Pages
  • Servlet = program napsaný v Javě a běžící na straně serveru
  • JSP = technologie od SUNu pro tvorbu dynamických webových stránek na platformě Javy. Je to vyšší level abstrakce servletu.
  • 1. dokument je při prvním zavolání přeložen do jazyka Java → vzniká servlet (.java)

elementy JSP

  • skriptovací elementy a proměnné (kód)
    • deklarace, výraz, skriplet :D
  • direktivy
    • instrukce, jejímž prostřednictvím se snažíme kontejneru sdělit, jak má sestavit určité pasáže programového kódu, které se stanou součástí nového servletu
    • formát direktivy: <%@ direktiva atribut1=“hotnota1” … atributN=“hodnotaN” %>
    • Include, Taglib, Page
  • intrukce (akce)
    • založeny na XML
  • elementy XML

implicitní objekty

  • Určité užitečné objekty, názvy proměnných a metod jsou na stránce JSP tvořeny automaticky - jsou součástí procesu překladu stránky na zdrojový kód (servlet)
  • nelze je použít v deklaracích
  • .request, response, out, session, application, config
servlety
  • Servlety implementují princip požadavek-odpověď
  • Java Servlet API - množina tříd definující standardní rozhraní pro obsluhu požadavků a odpovědí mezi klientem a serverem
  • TOMCAT
    • jeden z nejpoužívanějších Servlet/JSP kontejnerů pod Javou
Permalink server_side_script.txt · Last modified: 2017/01/08 18:55 by efox

oeffentlich