Instalacja i konfiguracja Serwera sieci Web (IIS) w Windows 2003
Obsługa protokołu IPv6 w serwerze sieci web (IIS 6.0) jest dostępna dopiero po zainstalowaniu protokołu IPv6 w systemie Windows.
Serwer IIS 6.0 wspiera obsługę żądań po protokole IPv6 wyłącznie dla protokołu HTTP.
Aby zainstalować serwer sieci web (IIS 6.0) należy otworzyć okno Zarządzanie tym serwerem, tak jak pokazano na rysunku 1.
Rysunek 1. Otwarcie okna Zarządzanie tym serwerem
Następnie w oknie Zarządzanie tym serwerem należy kliknąć na hiperłącze Dodaj lub usuń rolę.
Rysunek 2. Dodanie lub usuwanie roli
Następnie pojawi się okno Kreator konfigurowania serwera, gdzie należy wcisnąć przycisk Dalej. Kolejnym krokiem jest wybór roli serwera, należy zaznaczyćSerwer aplikacji (IIS, ASP.NET), tak jak pokazano na rysunku 3, a następnie nacisnąć przycisk Dalej.
Rysunek 3. Zaznaczenie roli serwera aplikacji (IIS, ASP.NET)
W kolejnym oknie można wybrać dodatkowe narzędzia do zainstalowania na serwerze, następnie należy nacisnąć przycisk Dalej. Zostanie wyświetlone okno Podsumowanie, gdzie należy nacisnąć przycisk Dalej. W tym momencie rozpocznie się dodawania roli do serwera, która to może wymagać włożenia płyty instalacyjnej Windowsa 2003 do napędu. Po pomyślnym zakończeniu dodawania roli zostanie wyświetlone okno z informacją, że ten serwer jest już teraz serwerem aplikacji, gdzie należy nacisnąć przycisk Zakończ.
Aby podejrzeć lub zmodyfikować adresy IP, za pomocą których istnieje dostęp do witryny należy otworzyć Menadżer internetowych usług informacyjnych (IIS), tak jak pokazano na rysunku 4.
Rysunek 4. Otwarcie okna Menadżera internetowych usług informacyjnych (IIS)
Następnie w drzewie konsoli znajdującym się po lewej stronie okna Menadżera internetowych usług informacyjnych (IIS), należy rozwinąć gałąź z nazwą serwera i nacisnąć na gałąź Witryny sieci Web, tak jak pokazano na rysunku 5.
Rysunek 5. Wyświetlenie dostępnych witryn
Po prawej stronie okna Menadżera internetowych usług informacyjnych (IIS) w kolumnie Adres IP znajduje się wpis dotyczący adersów IP za pomocą, których dana witryna jest dostępna. Jeśli w polu tym znajduje się wpis *Wszystkie nieprzypisane* oznacza to, że witryna jest dostępna za pośrednictwem wszystkich adresów IP przypisanych do interfejsów sieciowych w tym również adresów IPv6.
Serwer IIS 6.0. nie wspiera powiązań witryn z konkretnymi adresami IPv6, dlatego jeżeli witryna ma być dostępna za pomocą adresu IPv6 w polu Adres IP musi znajdować się wpis *Wszystkie nieprzypisane*.
Aby ustawić pole Adres IP na wartość *Wszystkie nieprzypisane* należy nacisnąć prawym przyciskiem myszy na witrynę, a następnie wybrać Właściwości, tak jak pokazano na rysunku 6.
Rysunek 6. Otwarcie właściwości witryny
W oknie Właściwości, w zakładce Witryna sieci Web w polu Adres IP należy wybrać (Wszystkie nieprzypisane), tak jak pokazano na rysunku 7, a następnie nacisnąć przycisk Zastosuj oraz przycisk OK.
Rysunek 7. Edycja powiązania witryny z adresem IP
Nie jest potrzebne ponowne uruchomienie Serwera sieci web (IIS) w celu zastosowania zmian.
Aby sprawdzić poprawność działania serwera www po konfiguracji, należy w pasku przeglądarki wpisać adres IPv6 w nawiasach kwadratowych, tak jak pokazano na rysunku 8.
Rysunek 8. Sprzwdzenie działania serwera IIS po adresie IPv6
Serwer sieci Web
Serwer sieci web (ang. web server) to oprogramowanie, którego podstawową funkcjonalnością jest dostarczanie witryn internetowych do klienta za pośrednictwem sieci. Usługa ta świadczona jest na żądanie klienta za pomocą protokołu HTTP.
HTTP (ang. Hypertext Transfer Protocol) jest podstawowym protokołem służącym do komunikacji w sieci. Działa on w trybie żądanie-odpowiedź (ang. request-response) w modelu klient-serwer, oznacza to, że na każde żądanie ze strony klienta serwer generuje odpowiedź, a cała komunikacja odbywa się synchronicznie. Protokół HTTP określa komunikaty, które klient może przesłać do serwera oraz odpowiedzi, których może się spodziewać. Protokół HTTP jest zdefiniowany w RFC 2616 i obowiązuje klienta oraz serwer.
Najpowszechniej używanym sposobem komunikacji klienta z serwerem sieci web jest zestawianie połaczenia TCP na porcie 80. Użycie protokołu TCP gwarantuje nam niezawodność, dzięki czemu komunikujące się strony nie potrzebują martwić się o gubienie pakietów.
Pierwszą udokumentowaną wersją protokołu HTTP była wersja 0.9, zaś dopiero wesja 1.0 została zdefiniowana w dokumencie RFC 1945 w 1996 roku.
Protokół HTTP 1.0 umożliwia realizację tylko jednego żądania w ramach jednego połączenia. Rozwiązanie to na początku wydawało się być wystarczające, ponieważ przesyłane strony w tamtych czasach były przeważnie typowo tekstowe. Bardzo szybki rozwój Internetu spowodował, że strony były coraz bardziej urozmaicane w różnego rodzaju dodatkowe elementy multimedialne, co spowodowało, że używanie protokołu HTTP 1.0 stało się coraz bardziej nieefektywne. W roku 1999 w dokumencie RFC 2616 został zdefiniowany protokół HTTP 1.1, w którym to zastosowano mechanizm połączenia stałego (ang. Persistent connection). Rozwiązanie to pozwoliło na obsługę wielu żądań w czasie trwania jednego połączenia.
Każde żądanie HTTP rozpoczęte jest od metody, która określa przedmiot żądania.
W dokumencie RFC 2616 opisującym protokół HTTP 1.1 zostały zdefiniowane następujące metody:
· GET - żądanie udostępnienia zasobu wskazanego przez URI
· HEAD - żądanie udostępnienia informacji o zasobie
· PUT - żądanie zapamiętania przesyłanych danych w postaci pliku na serwerze
· POST - żądanie przyjecia danych przesyłanych przez klienta
· DELETE - żądanie usunięcia zasobu
· TRACE - żądanie odesłania otrzymanego żądanie – służy do diagnostyki
· CONNECT - żądanie przeznaczone dla serwerów proxy pełniących funkcję tunelowania
· OPTIONS - żadanie przesłania informacji o opcjach i właściwościach w danym kanale komunikacyjnym
Po linii zawierającej metodę mogą występować linie zawierające dodatkowe informacje związane z żądaniem m.in. takie jak:
· User-Agent – zawiera informacje o przeglądarce i systemie operacyjnym klienta
· Accept – zawiera informacje o typach stron obługiwanych przez klienta
· Accept-Charset – zawiera zestaw znaków akceptowalnych przez klienta
· Accept-Encoding – zawiera kodowanie akceptowalne przez klienta
· Accept-Language – zawiera wersję językową systemu klienta
· Host – zawiera nazwę DNS serwera
· Authorization – zawiera listę uwierzytelnień serwera
· Cookie – zawiera istniejące ciasteczka (ang. Cookies) wysyłane do serwera
· Date – zawiera datę oraz czas wysłania komunikatu
· Upgrade – zawiera protokół, na który nadawca żąda przełączenia
Pierwsza linia odpowiedzi serwera rozpoczyna się od wersji protokołu, zaś po niej występuje trzycyfrowy kod statusu oraz tekstowe wytłumaczenie tego kodu. Kody statusu dzielą się na pięć grup, a pierwsza cyfra kodu statusu określa przynależność do danej grupy.
Tabela 1. Omówienie kodów statusu protokołu HTTP
Grupa
|
Znaczenie
|
Przykłady kodów statusowych
|
1xx
|
Informacja
|
100 – żądanie klienta zostało zaakceptowane przez serwer
|
2xx
|
Powodzenie
|
200 – żądanie zostało pomyślnie zrealizowane
|
3xx
|
Przeadresowanie
|
301 – żądany zasób znajduje się pod innym adresem
|
304 – kopia strony w pamięci cache jest nadal aktualna
|
4xx
|
Błąd klienta
|
403 – dostęp do witryny jest zabroniony
|
404 – żądana strona nie istnieje
|
5xx
|
Błąd serwera
|
500 - wewnętrzny błąd serwera
|
503 – spróbój później
|
Po linii zawierającej kod statusu mogą występować linie zawierające dodatkowe informacje związane z odpowiedzią m.in. Takie jak:
· Server – zawiera informacje o serwerze
· Content-Encoding – zawiera sposób kodowania zawartości
· Content-Language – zawiera wersję językową strony
· Content-Length – zawiera długość strony (w bajtach)
· Content Type – zawiera typ MIME zawartości strony
· Last-Modified – zawiera datę oraz czas ostatniej modyfikacji strony
· Location – zawiera polecenie przekierowujące klienta do innego adresu
· Accept-Ranges – zawiera informację o możliwości udostępniania fragmentow stron
· Set-Cookie – zawiera ciastko (ang. Cookie) zapiswywane przez serwer u klienta
· Date – zawiera datę i czas wysłania komunikatu
· Upgrade – zawiera protokół, na który nadawca żąda przełączenia
Komunikacja przy użyciu protokołu HTTP pomiędzy klientem, a serwerem odbywa się poprzez przesyłanie komunikatów tekstowych w postaci kodów ASCII. Rozwiązanie to nie nadaje się do przesyłania poufnych informacji, dlatego też w celu zapewnienia bezpiecznego przesyłania danych w komunikacji klient-serwer powstał protokół HTTPS (Secure HTTP). Protokół ten tak naprawdę jest nadal protokołem HTTP, z tą różnicą że bazuje on na usługach warstwy SSL
(ang. Secure Socket Layer). SSL zapewnia wzajemne uwierzytelnienie klienta oraz serwer, szyfrowaną komunikację oraz ochronę integralności danych. Serwer sieci web do obsługi żądań HTTPS standardowo używa portu 443.
Opracowano na podstawie: Andrew S. Tanenbaum "Sieci Komuterowe" Wydawnictwo Helion, 2004; s. 576-581