Komunikace klienta s www serverem

Základní schéma:
  1. Uzivatel zadá URL (napr. http://localhost/soubor.html).
  2. Klient sestaví dle protokolu HTTP pozadavek a odesle ho serveru.
  3. Server vyhledá zdroj (soubor.html) a obalený HTTP hlavickou ho posle klientovi.
  4. Klient zpracuje odpoved serveru a neco zobrazí uzivateli.
Prípad, kdy zdrojem není statický soubor, ale program produkující nejaký výstup:
  1. Uzivatel zadá URL (napr. http://localhost/search.cgi?what=java&lang=en).
  2. Klient sestaví dle protokolu HTTP pozadavek a odesle ho serveru.
  3. Server spustí program search.cgi.
  4. Jeho výstup posle klientovi.
  5. 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.
Príklad:
#!/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 typu java MyClass.)