WWW Servery
Samostatné úlohy
SAMOSTATNÝ ÚKOL 1 |
|
|
Podívejte se na http://archiv.czech.net/a804s200/a804p201.htm a pokuste se sami definovat rozdíl mezi internetem a intranetem. |
Internet vs. intranet |
SAMOSTATNÝ ÚKOL 2 |
|
|
Zjistěte IP adresu vašeho počítače. Zjistěte loop-back adresu svého počítače. Postup si poznamenejte. |
IP adresa a Loop-back IP adresa |
SAMOSTATNÝ ÚKOL 3 |
|
|
V příkazovém řádku napište telnet gis.vsb.cz 80 a do vytvořeného spojení zašlete následující text (takový zasílá WWW serveru prohlížeč MSIE 6.0): GET / HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Accept-Language: cs Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) Host: 158.196.143.23:80 Connection: Keep-Alive Výstup, který obdržíte si uložte do souboru, k pozdější analýze na tutorialu. |
Zaslání požadavku na WWW server, obdržení odpovědi |
SAMOSTATNÝ ÚKOL 4 |
|
|
Pokud zvládáte programování v jazyce Java, můžete se pokusit o zprovoznění serveru, který vypíše obsah požadavku WWW klienta do systémového výstupu. Zde je kód serveru: import java.io.*; import java.net.*; import java.util.*; class SimpleThread extends Thread { Socket s; int id; public SimpleThread(String str, Socket ss, int cid){ super(str); s = ss; id=cid; } public void run() { try { DataInputStream dis = new DataInputStream(s.getInputStream()); String header; //ctení streamu z klienta while ((header = dis.readLine())!= null) { System.out.println(header); } } catch (IOException e) { System.out.println("Chyba cteni z klienta: " + e); } } } public class MyServer { public static void main(String args[]) { int iii=1; ServerSocket ser = null; Socket s = null; try { ser = new ServerSocket(2255); } catch (IOException e) { System.out.println("chyba Serveru: " + e); } while (true) { try { System.out.println("Starting Thread"); s = ser.accept(); new SimpleThread(new Integer(iii).toString(), s, iii).start(); iii++; } catch (IOException e) { System.out.println("chyba zapis: " + e); //System.exit(0); } } } } V prohlížeči zadejte adresu http://127.0.0.1:2255/. Výstup, který na straně serveru obdržíte srovnejte s textem v předchozím úkolu. |
Přijetí požadavku WWW klienta. |
SAMOSTATNÝ ÚKOL 5 |
|
|
Zamyslete se nad druhým důvodem k volbě serveru Apache pro tento učební materiál. |
Druhý důvod pro volbu WWW serveru Apache |
SAMOSTATNÝ ÚKOL 6 |
|
|
Nainstalujte WWW server Apache pro svůj OS nebo nabootujte LiveCD. |
|
SAMOSTATNÝ ÚKOL 7 |
|
|
Vyzkoušejte si restart Apache všemi uvedenými způsoby. |
|
SAMOSTATNÝ ÚKOL 8 |
|
|
Nastavte direktivu Port na hodnotu 8055 a ServerAdmin na svou e-mailovou adresu. Restartujte server. Vyzkoušejte, že na portu 80 již server neběží ale beží na portu 8055 (Při zadání http://127.0.0.1/ by měl klient oznámit, že server nenalezl, ale při zadání http://127.0.0.1:8055/ by měl odpovědět). Zkuste zadat požadavek na dokument, který ve vašem wwwrootu neexistuje a přesvěčte se, že server již uvádí správný administrátorský e-mail. |
Nastavení Port a ServerAdmin |
SAMOSTATNÝ ÚKOL 9 |
|
|
Podívejte se do souboru access_log, do kterého vám server zapisuje dle předpisu common a pokuste se popsat co server zaznamnal. Na pomoc můžete využít http://httpd.apache.org/docs-2.0/logs.html |
Struktura předpisu common |
SAMOSTATNÝ ÚKOL 10 |
|
|
Zadejte v prohlížeči adresu http://127.0.0.1/axdfglmp. Změňte úroveň chybových hlášení na debug. Restartujte server. Zadejte opět adresu http://127.0.0.1/axdfglmp. Podívejte se do souboru error_log a porovnejte ibě úrovně zápisu (warn vs. debug). |
Úroveň zápisu |
SAMOSTATNÝ ÚKOL 11 |
|
|
pokud nemáte Web Alyzer ještě nainstalován, nainstalujte jej a těšte se z jeho analýz (resp. souhrnných přehledů). |
WebAlyzer |
SAMOSTATNÝ ÚKOL 12 |
|
|
Ve wwwrootu vytvořte adresář nepristupny. Umístěte do něj dokument index.html. Zobrazte si tento dokument přes WWW prohlížeč. Nastavte přístup k adresáři nepristupny na Deny from all. A vyzkoušejte znovu přístup. |
Deny from all |
SAMOSTATNÝ ÚKOL 13 |
|
|
Zpřístupněte libovolný adresář mimo wwwroot. |
Virtuální adresář |
SAMOSTATNÝ ÚKOL 14 |
|
|
Najděte v konfigruračním souboru sekci, která definuje přístup k adresáři cgi-bin. |
cgi-bin |
SAMOSTATNÝ ÚKOL 15 |
|
|
Podívejte se na http://httpd.apache.org/docs-2.0/howto/public_html.html a http://httpd.apache.org/docs-2.0/mod/mod_userdir.html#userdir a podle příkladů zpřístupněte uživatelské virtuální adresáře. Následně povolte spouštění CGI skriptů v podadresáři cgi-bin uživatelského adresáře. |
Uživatelský adresář a CGI |
SAMOSTATNÝ ÚKOL 16 |
|
|
Vytvořte vlastní ikonu a modifukujte konfiguraci tak aby se u souborů s příponou .txt zobrazovala vámi vytvořená ikona. |
Vlastní ikona |
SAMOSTATNÝ ÚKOL 17 |
|
|
Vyzkoušejte si vytvoření CGI skriptu, který využívá interpret SH. Skript pojmenujte s příponou .cgi a umístěte jej do spustitelného adresáře. #!/bin/sh echo "Content-type:text/plain"; echo "" echo "Ahoj lidi!" echo $1; Vyzkoušejte si vytvoření CGI skriptu, který využívá interpret Perl. Skript pojmenujte s příponou .pl a umístěte jej do spustitelnhé adresáře. #!/usr/bin/perl print "Content-type:text/plain\n"; print "\n" print "Ahoj lidi!\n" |
CGI skripty SH, Perl |
SAMOSTATNÝ ÚKOL 18 |
|
|
Pokuste si sepsat na čem všem závisí rychlost zpracování požadavku klienta a co vám tedy může ovlivnit Timeout. |
Timeout |
SAMOSTATNÝ ÚKOL 19 |
|
|||||||||||||
Doplňte následující tabulku týkající se kompatibility klientů a serverů v oblasti medoty Digest.
|
|