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.

 MozillaMSIEOpera
Apache   
IIS