Komunikace klienta s www serverem
Základní schéma:
- Uzivatel zadá URL (napr. http://localhost/soubor.html).
- Klient sestaví dle protokolu HTTP pozadavek a odesle ho serveru.
- Server vyhledá zdroj (soubor.html) a obalený HTTP hlavickou ho posle klientovi.
- Klient zpracuje odpoved serveru a neco zobrazí uzivateli.
Prípad, kdy zdrojem není statický soubor, ale program produkující nejaký výstup:
- Uzivatel zadá URL (napr. http://localhost/search.cgi?what=java&lang=en).
- Klient sestaví dle protokolu HTTP pozadavek a odesle ho serveru.
- Server spustí program search.cgi.
- Jeho výstup posle klientovi.
- Klient zpracuje odpoved serveru a neco zobrazí uzivateli.
Jak pracuje takový CGI program:
- Data z klienta dostane v promenných prostredí, prípadne na standardním vstupu.
- Program neco pocítá a to, co posle na standardní výstup, prijde prostrednictvím serveru zpet klientovi.
#!/bin/sh echo "<?xml version=\"1.0\" encoding=\"iso-8859-2\"?>" echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"" echo " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">" echo "<head>" echo "<meta http-equiv=\"content-type\"" echo " content=\"text/html; charset=iso-8859-2\" />" echo "<title>Sample CGI</title>" echo "</head>" echo "<body>" echo "<h1>Hello World!</h1>" echo "</body>" echo "</html>"
CGI v Jave?
- Prístup k promenným prostredí a ke standardnímu vstupu máme.
- Psát na standardní výstup umíme.
- → Hurá! (Ovsem protoze Java nevytvárí samostatne spustitelné soubory, museli bychom vyrábet
falesné
cgi programy s jednorádkovým obsahem typujava MyClass.)