Internet - Kolos

21 downloads 111 Views 2MB Size Report
18 Lis 2006 ... PL Długość pakietu – długość łącznie z nagłówkiem. ..... własnym protokołem transmisji (HTTP – HyperText Transmission Protocol). ..... ter zdalny pliki test1.dat oraz inf1.dat i inf2.dat, znajdujące się w katalogu ...... April Fool's Joke - Kawał Prima Aprilis. AFK .... http://www.ict.pwr.wroc.pl/doc/news-pl-faq.html.
Internet

Piotr Fulmański

1

18 listopada 2006

1

e-mail: [email protected]

2

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Spis treści Przedmowa 1 Sieci 1.1 Co to jest sieć? . . . . . . . . . . . . . . . . . . 1.2 Model ISO/OSI . . . . . . . . . . . . . . . . . . 1.3 Intersieci . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Powody tworzenia intersieci . . . . . . . 1.3.2 Protokoły TCP/IP . . . . . . . . . . . . 1.3.3 Protokół IP . . . . . . . . . . . . . . . . 1.3.4 DNS - Domain Name System . . . . . . 1.3.5 TCP – usługa niezawodnego przesyłania 1.3.6 IP v. 6 . . . . . . . . . . . . . . . . . .

i

. . . . . . . . .

1 1 1 2 2 3 3 7 9 11

2 WWW 2.1 Czym jest WWW? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 15

3 Poczta elektroniczna

19

4 Telnet

23

5 FTP 5.1 FTP i przeglądarka WWW . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 FTP i klient graficzny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 FTP i klient tekstowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25 25 27 27

6 HTML 6.1 Jak sobie pościelesz . . . czyli trochę o BHP pracy . . . . 6.1.1 Treść i cel pracy . . . . . . . . . . . . . . . . . . 6.1.2 Podział treści na główne tematy . . . . . . . . . 6.1.3 Wybór struktury . . . . . . . . . . . . . . . . . . 6.1.4 Ogólny zarys strony . . . . . . . . . . . . . . . . 6.2 Podstawą dobrego jedzenia jest dobry stół . . . . . . . . . 6.2.1 Czym jest HTML? . . . . . . . . . . . . . . . . . 6.2.2 Podstawy HTML-a . . . . . . . . . . . . . . . . . 6.3 Połączenia . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Połączenia do określonych miejsc w dokumencie 6.3.2 Znaki specjalne w adresach URL . . . . . . . . . 6.4 Formatowanie tekstu . . . . . . . . . . . . . . . . . . . . 6.5 Wstawianie obrazków . . . . . . . . . . . . . . . . . . .

37 37 37 37 38 38 39 39 39 47 49 50 50 53

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

7 Tabele

55

8 Ramki

59

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

4

SPIS TREŚCI

9 Formularze

63

10 Przykłady buziek

67

11 Przykłady skrótów

73

12 Odpowiedzi do ćwiczeń

77

13 Różne wiadomości 13.1 Materiały źródłowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2 Adresy internetowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Książki i artykuły . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79 79 79 80

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Przedmowa Uczyć się, lecz nie myśleć, to bezużyteczne. Lecz myśleć a nie uczyć się, to niebezpieczne. Z przysłów konfucjańskich Dokument ten stanowi elektroniczną wersję notatek, jakie przygotowuję dla siebie prowadząc zajęcia z Internetu. Integralnym jego elementem są pliki ilustrujące działanie omawianych w części poświęconej HTML-owi i JavaScript zagadnień. Udostępniam je z nadzeją, że ułatwi to uporządkowanie podanych wiadomości. Zachęcam gorąco do samodzielnego zgłębiania interesujących zagadnień. Ponadto proszę o wszelkiego rodzaju uwagi związane z zamieszczonym lub prezentowanym na zajęciach materiałem. Tylko dzięki nim mogę mieć możliwość stałego doskonalenia dokumentu tak, aby faktycznie stał się dla Państwa użyteczny.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

ii

Przedmowa

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Rozdział 1

Sieci 1.1

Co to jest sieć?

Siecią komputerową nazywamy zbiór systemów komputerowych rozproszonch geograficznie i połączonych siecią transmisji danych w celu udostępniania odległym użytkownikom swoich zasobów w celu ich efektywnego wykorzystania. Podstawowymi celami użytkowania sieci komputerowych są: – podział obiciążeń między poszczególne systemy komputerowe, – współużytkowanie programów, – współużytkowanie danych, – dostęp do baz danych, – zwiększenie niezawodności i fukncjonalnej dostępności, – zapewnienie współpracy wielu użytkownikom, – zapewnienie zniezawodności działania.

1.2

Model ISO/OSI

Sieć komputerową stanowią różne zasoby jak komputery obliczeniowe, bazy danych czy kanały i węzły łączności, wykorzystywane przez wielu użytkowników. Ich efektywne wykorzystanie możliwe jest, gdy ustali się pewne wspólne regóły dotyczące przetwarzania danych i komunikacji. Takie podejście do analizy sieci komputerowej jest możliwe dzięki podziałowi funkcji sieci komputerowej na warstwy. Chodzi tu o teoretyczny model, za pomocą którego możliwe jest opisanie komunikacji sieciowej w sposób niezależny od stosowanego sprzętu i oprogramowania. Przykładem takiego podziału funkcji sieci komputerowej jest architektura proponowana przez ISO (ang. International Organization for Standardization – Międzynarodowa Organizacja Normalizacji)1 zwana modelem ISO/OSI (OSI – Open System Interconnection). „Podręcznikowa” sieć zaproponowana przez ISO składa się z 7 warstw, którym odpowiadają określone elementy sprzętowe i programowe biorące udział w procesie wymiany informacji. 1 Nie chodzi tutaj o International Standards Organization – Organizację Standardów Międzynarodowych, która także ma skrót „ISO”.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

2

Sieci

Model ISO/OSI Warstwa fizyczna odpowiedzialna jest za przesyłanie bitów; odpowiada jej karta sieciowa lub modem. Na tym poziomie realizowana jest fizyczna transmisja danych bez „kontroli ruchu” i bez uwzgledniania rodzaju informacji. Widzi ona tylko ciag jedynek i zer niepotrafi nadać im znaczenia ani określić ich wagi. Ciagłość transmisji nie jest zabezpieczona – jeśli medium zostanie zablokowane lub uszkodzone, komunikacja zostanie przerwana. Warstwa ta nie jest tym samym co fizyczny nośnik danych (sygnałów) przewody nie są częścią warstwy fizycznej i w modelu tym umiejscowione są poniżej warstwy fizycznej. Warstwa łacza steruje fizyczną wymianą bitów; układa bity w ramki, sprawdza poprawność danych, zarządza warstwą 1. Odpowiada za końcową zgodność przesyłanych bitów z oryginalnie nadanymi. W większości przypadków obie wymienione warstwy połączone są w jedną całość, tworząc w ten sposób kartę sieciową. Warstwa sieci zamienia ciag bitów w kanał komunikacyjny: dba o to aby informacje przepływały między odpowiednimi komputerami wyznaczając odpowiednią trasę. Dane wymieniane są w postaci pakietów wysyłanych od nadawcy do odbiorcy, nie jest jednak sprawdzana ich zawartość. Warstwa transportowa. Przesyła wiadomości kanałem stworzonym przez warstwę sici. Dopiero ta warstwa troszczy się o bezpieczeństwo i pewność wymiany danych. Wszystkie trzy wcześniejsze warstwy nie przykładają żadnej wagi do bezpieczeństwa, skupiając się na zapewnieniu maksymalnej szybkości. Warstwa sesji zarządza przebiegiem komunikacji podczas połączenia między dwoma komputerami. Warstwa ta pozwala realizować usługi takie jak na przykład pobieranie z serwera zawartości katalogu dyskwego. Przez sesję rozumiemy relację zachodzące podczas współpracy dwóch odległych procesów. Warstwa prezentacji zajmuje się przetworzeniem dane dostarczonych z niższych warstw w taki sposób, aby mogły być odebrane przez aplikacje użytkownika. Tutaj dokonywana jest na przykład konwersja, jeśli komputer klient używa innego formatu liczb niż komputer serwer. Warstwa aplikacji stanowi interfejs realizujący zapytania aplikacji lub po prostu program komunikacyjny, a więc na przykła przeglądarkę WWW. Należy podkreślić, że najniższe warstwy modelu OSI nie realizują żadnych funkcji związanych z bezpieczeństwem. Dopiero na wyższych poziomach istnieją mechanizmy dbające o poprawność połączenia.

1.3 1.3.1

Intersieci Powody tworzenia intersieci

Żadna technika sieciowa nie jest w pełni odpowiednia do wszystkich zastosowań. Wymusza to dobieranie odpowiedniej sieci do określonego zadania. W ten sposób otrzymujemy układ złożony z wielu różnych rodzajów sieci. Główny problem w układzie złożonym z wielu różnych sieci jest dość oczywisty: komputer przyłączony do jednej sieci, może komunikować się tylko z innymi komputerami w tej sieci. Niezbędne zatem staje się określenie jednolitych usług umożliwiających komunikację między dwoma komputerami, znajdującymi się w dwóch różnych sieciach, za pomocą podobnych mechanizmów. Mechanizm jednolitych usług wydaje się niezbędny, jednak niezgodność sprzętu, formatu pakietów, schematów adresowania różnych sieci nie pozwala na budowę większych sieci przez c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

1.3 Intersieci

3

proste połączenie kabelkiem większej ilości mniejszych. Łączenie sieci fizycznych, korzystających z różnorodnych technik sieciowych, wymaga stosowania odpowiedniego sprzętu i oprogramowania realizującego ideę jednolitych usług. Wynikowy system łączący wiele różnych sieci fizycznych w jedna całość nosi nazwę intersieci (internetu). Zatem celem budowy intersieci jest zapewnienie jednolitych usług w sieciach heterogenicznych, co z kolei wymaga aby informacje z dowolnego komputera w jednej sieci mogły być przekazane do innego komputera w każdej z pozostałych sieci. Zadanie to wymaga wsparcia zarówno od strony programowej jak i technicznej. Oprogramowanie intersieci zapewnia złudzenie wielkiej, jednolitej sieci, do której podłączone są poszczególne komputery. System taki oferuje jednolite usługi: każdy komputer w intersieci ma jednoznaczny adres2 i każdy komputer może wysyłać informacje do dowolengo innego. Oprogramowanie protokołów intersieci ukrywa szczegóły związane ze stosowanymi technikami fizycznymi, fizycznymi połączeniami, adresami, informacjami o trasach — ani użytkownicy, ani programy użytkowe nie są świadome struktury fizycznej sieci składowych. Mówimy, że intersieć jest siecią wirtualną, gdyż system komunikacyjny intersieci jest tworem abstrakcyjnym. Choć odpowiednia kombinacja sprzętu i oprogramowania zapewnia złudzenie pojedyńczej sieci, jednak taka się w rzeczywistości nie istnieje. Zasadniczym urządzeniem, które jest potrzebne do łączenia sieci heterogenicznych jest ruter. Dzięki niemu możliwe staje się połączenie sieci używających różnych technik, korzystających z różnych mediów transmisyjnych, mechanizmów adresowania fizycznego i formatów ramek. Ruter, pracując w węźle sieci, na podstawie adresów podejmuje decyzję dokąd kierować dane. Jesli komputer węzłowy stwierdza, że dalsza droga jest zablokowana, wówczas próbuje dostarczyć dane do innego komputera węzłowego z nadzieją, że ten będzie w stanie ominąć przeszkodę. Rutery wymieniają się wzajemnie informacjami o stanie połączeń. W ten sposób Internet konfiguruje się samoczynnie. Z tego powodu nie jesteśmy w stanie przewidzieć, którędy pakiet dotrze do adresata. Może się zdarzyć, że pakiety należące do tej samej wiadomości zostaną dostarczone różnymi trasami. Ze względu na dowolnosć wyboru drogi nie możemy zagwarantować, że pakiety dotrą do celu w takiej samej kolejności w jakiej były nadawane. Zadaniem odbiorcy jest posortowanie pakietów i ułożenie ich we właściwym porządku. Ani on, ani nadawca nie mają żadnego wpływu na sposób działania sieci.

1.3.2

Protokoły TCP/IP

Wiele protokołów zaadoptowano do pracy w intersieciach, jednak jeden zestaw stosowany jest szczególnie często. Formalnie nosi on nazwę zestawu protokołów intersieci TCP/IP (TCP – Transmission Control Protocol, IP – Internet Protocol). Autorzy protokołów TCP/IP zaproponowali własny model warstwowej struktury protokołów bazujący na wcześniejszym modelu ISO/OSI.

1.3.3

Protokół IP

Aby umożliwić intersieci udostępnianie jednolitego systemu komunikacyjnego, oprogramowanie ukrywa szczegóły sieci fizycznych, oferując udogodnienia dużej sieci wirtualnej. Wirtualna intersieć działa podobnie do każdej innej sieci, umożliwiając komputerom wysyłanie i odbieranie pakietów z informacjami. Główna różnica polega na tym, że intersieć jest jedynie modelem działającym dzięki odpowiedniemu oprogramowaniu. Krytycznym elementem modelu intersieci jest adresowanie. Aby dawać obraz pojedyńczego, jednolitego systemu, wszystkie komputery muszą wykorzystywać jednolity schemat adresowania, a każdy adres musi być jednoznaczny. Fizyczne adresy sieciowe są w tym przypadku nieodpowiednie, gdyż intersieć może obejmować wiele technik sieciowych, z których każda może definiować własny format adresu. Aby zagwarantować jednolite adresowanie we wszystkich węzłach, oprogramowanie protokołów określa schemat adresowania, który jest nie zależny od bazowych adresów fizycz2 Patrz

przypis na stronie 8.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

4

Sieci

nych. Chociaż schemat adresowania w intersieci jest realizowany przez oprogramowanie, adresy protokołowe są wykorzystywane jako punkty docelowe w intersieci, tak jak adresy sprzętowe są wykorzystywane jako punkty docelowe w sieciach fizycznych. Aby wysłać pakiet przez intersieć, nadawca umieszcza protokołowy adres odbiorcy w pakiecie i przekazuje pakiet do oprogramowania protokołu w celu wysłania. Oprogramowanie wykorzystuje protokołowy adres docelowy przy przekazywaniu pakietu poprzez intersieć do komputera odbiorcy. Dwa programy komunikują się, nie znając swoich adresów fizycznych. W stosie protokołów TCP/IP adresowanie zdefiniowane jest w protokole intersieci – Internet Protocol – IP. Standard IP określa, że każdy węzeł ma przypisany 32-bitowy numer, zwany adresem węzła w protokole intersieci, lub po prostu adresem IP. Każdy pakiet wysyłany przez intersieć zawiera zarówno adres IP odbiorcy jak i nadawcy. Każdy adres IP podzielony jest na dwie części: prefiks i sufiks. Prefiks identyfikuje sieć fizyczną, do której jest podłączony fizycznie komputer. Sufiks wskazuje konkretny komputer w danej sieci. Żadne dwie sieci nie mogą mieć przyznanego tego samego numeru jak i żadne dwa komputery w ustalonej sieci nie mogą posiadać identycznego numeru. Inaczej: jeśli dwa komputery są przyłączone do różnych sieci fizycznych, to mają różne prefiksy; jeśli dwa komputery są podłączone do tej samej sieci fizycznej, to ich adresy mają różne sufiksy. Hierarchia adresów IP gwarantuje dwie ważne własności: * każdy komputer ma przyznany jednoznaczny adres, * chociaż przypisanie numerów sieci muszą być koordynowane globalnie, sufiksy mogą być przyznawane lokalnie bez globalnego uzgadniania. Klasy adresów IP Po określeniu rozmiaru pojedyńczego adresu należało zdecydować ile bitów przeznaczyć na każdą z dwóch części. Żaden prosty wybór nie był tu możliwy, ponieważ dodanie bitów do jednej z nich powodowało zabranie ich z drugiej. Obranie długiego prefiksu jest odpowiednie w przypadku istnienia wielu sieci, ale powoduje ograniczenia rozmiaru każdej z nich. Obranie długiego sufiksu oznacza, że każda sieć fizyczna może zawierać wiele komputerów, ale całkowita liczba sieci jest wówczas ograniczona. Ze względu na to, że intersieć może obejmować dowolne techniki sieciowe zbudowane z „mieszaniny” dużych i małych sieci, podzielono przestrzeń adresową na trzy podstawowe klasy3 (A, B, C) o różnych rozmiarach prefiksu i sufiksu. Przykład 1.1 Klasy adresowe. Klasa A: max. liczba sieci – 128, max. liczba komputerów w sieci 16777216 0|1 2 3 4 5 6 7 8|9 10 11 12 13 14 ... 25 26 27 28 29 30 31 0| Prefiks - 7 b | Sufiks - 24 bity Klasa B: max. liczba sieci – 16384, max. liczba komputerów w sieci 65536 0 1|2 3 4 5 6 ... 12 13 14 15|16 17 18 19 ... 28 29 30 31 1 0| Prefiks - 14 bitów | Sufiks - 16 bitów Klasa C: max. liczba sieci – 2097152, max. liczba komputerów w sieci 256 0 1 2|3 4 5 6 ... 18 19 20 21 22 23|24 25 26 27 28 29 30 31 1 1 0| Prefiks - 21 bitów | Sufiks - 8 bitów Klasa D 3 Obecnie adresy IPv4 uważa się za adresy bezklasowe. Pozostawiam jednak ten rozdział mając nadzieję, że pomoże on zrozumieć inne zagadnienia czy idee.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

1.3 Intersieci

5

0 1 2 3|4 5 6 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 1 1 0| Adres rozgłaszania grupowego Klasa E 0 1 2 3|4 5 6 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 1 1 1| Zarezerwowane na przyszłość

Zawsze po odebraniu pakietu oprogramowanie określa klasę jego adresu docelowego. Może ona zostać obliczona bardzo szybko na podstawie samego adresu, stąd też adresy IP nazywane są samoidentyfikującymi się. Przykład 1.2 Kombinacje bitów odpowiadające poszczególnym klasom. Klasie A odpowiada osiem kombinacji zaczynających się od 0: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111 Klasie B odpowiadają cztery kombinacje zaczynające się od 10: 1000, 1001, 1010, 1011 Klasie C odpowiadają dwie kombinacje zaczynające się od 110: 1100, 1101 Klasie D odpowiada jedna kombinacja: 1110 Klasie E odpowiada jedna kombinacja: 1111

Notacja dziesiętna z kropką Chociaż adresy IP są 32-bitowymi liczbami binarnymi, użytkownicy rzadko wpisują lub czytają ich wartość w tej postaci, stosując zamiast niej notację dziesiętną z kropką. W tym sposobie zapisu każda 8-bitowa część 32-bitowej liczby jest wyrażona jako wartość dziesiętna, zaś kropki są wykorzystywane jako separatory części. Przykład 1.3 Notacja ”zwykła” i dziesiętna z kropką. Notacja ”zwykła” 10000001 00110100 00000110 00000000 Ten sam adres zapisany z wykorzystaniem notacji dziesiętnej z kropką 129.52.6.0

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

6

Sieci

W ten sposób adresy dziesiętne z kropką sięgają od 0.0.0.0 do 255.255.255.255. Notacja z kropkami jest odpowiednia dla adresów IP, gdyż w adresach tych podział na prefiks i sufiks jest na granicy oktetów. W przypadku adresów klasy A ostatnie trzy oktety odpowiadają sufiksowi komputera, klasy B – ostatnie dwa, a w adresach klasy C – jeden oktet. Niestety w tej postaci nie widać poszczególnych bitów adresu, przez co klasę musimy rozpoznwać na podstawie wartości dziesiętnej pierwszego oktetu. Klasa A B C D E

Zakres wartości 0 – 127 128 – 191 192 – 223 224 – 239 240 – 255

Adresy IP specjalnego przeznaczenia IP określa zestaw adresów o szczególnej postaci, które są zarezerwowane Adresy sieciowe. IP rezerwuje adres zerowy węzła w danej sieci i wykorzystuje go przy odwoływaniu się do sieci. Odnosi się on do samej, a nie do komputerów podłączonych do niej. Adres ten oznacza prefiks przyznany sieci. Na przykład adres 128.211.0.0 oznacza sieć, której przyznano prefiks klasy B równy 128.211. Adres rozgłaszania ukierunkowanego. Używany jest w celu przesłania pakietu do wszystkich węzłów w danej sieci fizycznej. Gdy jest wysyłany pakiet pod adres rozgłaszania ukierunkowanego danej sieci, przez intersieć podróżuje tylko jedna jego kopia, aż dotrze do sieci. Następnie pakiet ten jest dostarczany do wszystkich węzłów tej sieci. Adres rozgłaszania ukierunkowanego danej sieci jest tworzony przez dodanie do jej prefiksu sufiksu, któty składa się z samych jedynek. IP rezerwuje adres węzła, którego wszystkie bity to jedynki. Zatem sufiks składa się z liczb 255. Adres rozgłaszania ograniczonego. Termin rozgłaszanie ograniczone odnosi się do rozgłaszania w lokalnej sieci fizycznej. Jest ono używane na przykład przy starcie systemu przez komputey, które nie znają w tym momencie numeru sieci. IP na rozgłaszanie ograniczone rezerwuje adres składający się z samych jedynek. Adres bieżącego komputera. Każdy pakiet musi zawierać adres odbiorcy i nadawcy; komputer by wysłać i odebrać pakiety, musi znać swój adres IP. Zestaw protokołów TCP/IP obejmuje protokoły, których można użyć przy automatycznym uzyskiwaniu adresu IP przy starcie. Co ciekawe, protokoły startowe do komunikacji używają IP. Komputer korzystając z takich protokołów uruchomieniowych, nie może podać prawidłowego adresu IP nadawcy. Aby radzić sobie w takich sytuacjach, w IP zarezerwowano adres, który składa się z samych zer, na oznaczenie bieżącego komputera. Adres pętli zwrotnej. Protokół IP rezerwuje prefiks sieciowy klasy A równy 127 na adres pętli zwrotnej. Adres węzła (sufiks) używany przytym jest bez znaczenia. Najpopularniejszym adresem pętli zwrotnej jest 127.0.0.1. Adres ten przydaje się na przykład przy testowaniu programów sieciowych. Używając pętli zwrotnej, żadne pakiety nigdy nie opuszczą komputera – oprogramowanie IP przekazuje pakiety z jednego programu użytkownika do drugiego. Ciąg bitów przesyłany pomiędzy komputerami za pomocą protokołu IP układany jest w pakiety. Każdy pakiet rozpoczyna się od nagłówka, który niesie szczegółową informacje o stosowanym protokole. Bezpośrednio po nim występują właściwe dane użytkowe. Przykład 1.4 Struktura nagłówka IP.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

1.3 Intersieci

7

1 2 3 01234567 89012345 67890123 45678901 | VER | HL | S | PL | | ID | DM OFFSET | | TTL | TRANS | CHECK SUM | | SOURCE ADDRESS | | DESTINATION ADDRESS | | OPTION | FILLING |

HL Długość nagłówka S Rodzaj usługi – pozwala wpłynąć na sposób, w jaki pakiet jest traktowany. Na przykład bardzo ważne pakiety można oznaczyć etykietą „wysokiego priorytetu”. PL Długość pakietu – długość łącznie z nagłówkiem. ID Identyfikator – parametr pozwalający jednoznacznie odróżnić wysłane pakiety. D Flaga DF (don’t fragment) – tak oznaczony pakiet może być dalej przesłany tylko w całości – jego fragmentacja jest zabroniona. Jeśli pakiet okaże się zbyt duży dla komputera docelowego, zostanie po prostu skasowany. M Flaga MF (more fragment) – oznacza, że podczas transmisji pomiędzy komputerami, pakiet został podzielony na części a odebrana paczka danych jest tylko jego fragmentem. OFFSET Przesunięcie pakietu – informuje o tym od którego bajtu pierwotnego pakietu rozpoczyna się dany fragment. Dzięki temu możliwe jest późniejsze odtworzenie pakietu z części. TTL Czas życia – określa jak długo pakiet może być jeszcze przesyłany do kolejnych węzłów sieci. Po przejściu przez każdy węzeł wartość ta zmniejszana jest o 1. Po osiągnięciu wartości 0, pakiet jest po prostu kasowany. Procedurę tą stosuje się po to, aby pakiet, który nie może być dostarczony, nie krążył w sieci bez końca. TRANS Protokół transportowy – określa jaki sposób transmisji przewidziany jest dla danego pakietu.

1.3.4

DNS - Domain Name System

Adres IP jednoznacznie identyfikuje komputer w Internecie, ale nie jest łatwo korzystać z niego, nawet posługując się notacją dziesiętną. Adresy liczbowe są bezosobowe przez co trudne do zapamiętania. Dużo łatwiej zapamiętać adres kolos.math.uni.lodz.pl niż 212.191.65.6 Ponadto wzajemna odpowiedniość adresów IP i komputerów nie daje wystarczającej elastyczności konicznej przy określaniu lokalizacji zasobów w Internecie. Ponieważ każdy adres IP określa jeden i tylko jeden komputer w sieci, to stosunkowo łatwo było stworzyć system ich nazywania. Opracowano dobrze określony zbiór reguł oraz mechanizm przekształcania nazw na adres IP, znane jako system nazw domenowych (DNS). c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

8

Sieci

Domena, to po prostu grupa komputerów w sieci. W domenie może znajdować się jeden lub więcej komputerów. Jeśli znamy nazwę komputera i domeny do której należy, dużo łatwiej, niż tylko na podstawie adresu IP, jest go zlokalizować. Nazwy domenowe składają się z ciągu słów rozdzielonych kropkami. Pełna kwalifikowana nazwa domenowa (FQDN – Fully Qualified Domain Name) reprezentuje nazwę komputera i hierarchię domen, w których się on znajduje. Struktura nazw domenowych ma układ ściśle hierarchiczny. Na szczycie systemu znajdują się tzw. Top Level Domain, reprezentujące dwie różne grupy zdefiniowanych już domen. Pierwsza z nich kojarzy domeny według ich znaczenia (treści), na przykład .org, .net, .mil, .com, a druga – według ich pochodzenia geograficznego (ponad sto dwuliterowych symboli państw). Wymienione domeny TLD są zdefiniowane na stałe i nie można do nich dodawać kolejnych elementów. Jeśli ktoś chce więc utworzyć nową domenę, musi umieścić ją w ramach jednej z tych grup TLD. Taka domena określana jest mianem Second Level Domain. Przestrzeń nazw nie kończy się oczywiście na drugim poziomie. W strukturze tej może funkcjonować niemal dowolna liczba kolejnych poziomów. Opisywana hierarchia ma ścisły związek z podziałem stref pomiędzy poszczególne serwery DNS. Ten, kto zarezerwowal dla siebie SLD, otrzymuje prawo do tworzenia w jej ramach subdomen i administrowania nimi, co wiąże się z instalacją serwera DNS lub zleceniem tego zadania swemu operatorowi internetowemu. Zgodnie z opisaną zasadą, adres kolos.math.uni.lodz.pl wskazuje na komputer nazwany kolos znajdujący się na Wydziale Matematyki (math) Uniwersytetu (uni) Łódzkiego (lodz) w Polsce (pl). W Internecie komputer posiada (na ogół) dokładnie jeden adres IP4 , ale może mieć wiele nazw (odwzorowanych w ten sam adres IP). Początkowo Internet funkcjonował bez usługi DNS. Do przełomu roku 86/87 podłączone do sieci komputery zapisywały adresy innych maszyn w zwykłym pliku ASCII umieszczonym na lokalnym dysku twardym. W celu odnaleznia adresu IP innego komputera, aplikacje internetowe po prostu przeszukiwały taką lokalną listę. Wraz z rozwojem sieci listy wydłużały się i zwiększał się nakład pracy potrzebny do ich ciągłego uaktualniania. Wówczas narodził się DNS. Mechanizm DNS nie różni się zasadniczo od innych usług internetowych. Również w tym systemie istnieją serwery oferujące określoną usługę (konwersję adresu symbolicznego na IP i odwrotnie) wywoływane przez stacje robocze (klientów). Funkcji serwera DNS nie pełni jeden centralny komputer. Zadanie to rozdzielono pomiędzy wiele maszyn. Poszczególne serwery odpowiadają zawsze tylko za pewną część przestrzeni adresowej DNS. Jeśli serwer otrzyma zapytanie dotyczące adresu, który nie należy do obsługiwanej przez niego strefy, przekazuje to zlecenie do stojącego wyżej w hierarchi serwera DNS, z nadzieją że ten potrafi ją zidentyfikować. Informacje adresowe dotyczące danej strefy mogą być również udostępniane przez kilka serwerów DNS. Reguły syntaktyczne * TLD znajduje się na samym końcu nazwy domeny, na lewo od niej umieszczona jest SLD itd. Kolejne nazwy subdomen są oddzielone od siebie za pomocą kropki. * Na samym początku znajduje się nazwa hosta. * Cały adres nie może być dłuższy niż 255 znaków. * Żaden pojedyńczy element nazwy nie może przekraczać maksymalnej długości 63 znaków. * Pierwszy znak każdego członu nazwy to litera. Może to być cyfra jeśli tylko nie powoduje to konfliktu z adresem podawanym w formie „kropkowo dziesiętnej”. 4 Rozważamy sytuację modelową – zakładam, że każdy komputer jest przyłaczony bezpośrednio do Internetu. W pewnych sytuacjach urządzenie może mieć więcej niż jeden adres IP, jednak nie zdarza się to często.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

1.3 Intersieci

9

Na przykład nazwy: 3Com.COM lub 3M.COM są poprawne, natomiast 26.0.0.73.COM nie jest poprawną nazwą. * Oprócz liter mogą występować cyfry i znak minus. * W systemie DNS nie są rozróżniane duże i małe litery.

1.3.5

TCP – usługa niezawodnego przesyłania

Oprogramowanie protokołu TCP wykonuje pozornie niemożliwe zadanie – używa oferowanej przez protokół IP zawodnej usługi do wysyłania danych, udostępniając przy tym programom użytkowym usługę ich niezawodnego dostarczenia. Z punktu widzenia programu użytkowego, usługa oferowana przez TCP ma następujące cechy: 1. Zorientowanie na połączenie – TCP zapewnia usługę zorientowaną połączeniowo, w której program użytkowy musi najpierw poprosić o połączenie do odbiorcy aby następnie używać go do przesyłania danych. 2. Komunikacja punkt-do-punkt – każde połączenie TCP ma dokładnie dwa końce. 3. Pełna niezawodność – TCP gwarantuje, że dane wysłane połączeniem będą dostarczone dokładnie tak, jak były wysłane, bez żadnych braków czy dostarczenia nie w kolejności. 4. Komunikacja w pełni dwukierunkowa – połączenie TCP pozwala, aby dane przepływały w obu kierunkach, a każdy program może wysyłać dane w dowolnym momencie. TCP umożliwia buforowanie wychodzących i przychodzących danych z obu kierunków. Dzieki temu, programy mogą wysłać dane i kontynuować dalej pracę podczas gdy informacje te są dopiero przesyłane. 5. Interfejs strumieniowy – TCP nie udostępnia pojęcia rekordu oraz nie gwarantuje, że dane zostaną dostarczone do programu odbierającego w kawałkach tego samego rozmiaru co wysyłane przez program nadający. 6. Niezawodne tworzeni połączenia – TCP wymaga, aby dwa programy tworzące połączenie musiały się na nie zgodzić. Duplikaty pakietów używanych w poprzednich połączeniach nie będą wyglądały jak prawidłowe odpowiedzi ani też w żaden inny sposób nie będą w stanie zakłócić nowego połączenia. 7. Łagodne kończenie połączenia. Program użytkowy może otworzyć połączenie, wysłać dowolną ilość danych, a następnie poprosić, aby połączenie zostało zamknięte. Protokół gwarantuje niezawodne dostarczenie wszystkich danych przed zamknięciem połączenia. Protokół TCP nazywa się protokołem obsługi końców połączenia, gdyż zapewnia połączenie bezpośrednio między programem na jednym komputerze a programem na drugim. Połączenia udostępniane prze TCP nazywane są połączeniami wirtualnymi, gdyż uzyskuje się je za pomocą oprogramowania. Protokół TCP do przenoszenia komunikatów wykorzystuje protokół IP. Każdy komunikat TCP jest kapsułkowany w datagram IP i wysyłany intersiecią. Gdy datagram dociera do węzła docelowego, protokół IP przekazuje jego zawartość do TCP. Zauważmy, że chociaż TCP używa IP do przenoszenia komunikatów, jednak oprogramowanie IP ich nie czyta ani nie c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

10

Sieci

interpretuje. W ten sposób TCP traktuje IP jak system komunikacyjny oparty na pakietach, który łączy węzły na dwóch końcach połączenia. Natomiast protokół IP traktuje każdy komunikat TCP jak zwykłe dane do przesłania. Przykład 1.5 System komunikacyjny z punktu widzenia TCP.

Główne problemy na jakie natrafimy chcąc zapewnić niezawodność protokołu transportowego, to: • niepewność dostarczenia za pomocą bazowego systemu komunikacji: zagubieni komunikatu, zduplikowanie, dostarczenie z opóźnieniem lub nie w kolejności; • restarty komputerów. Dla zapewnienia niezawodności usługi używa się całej gamy mechanizmów: • każdy segment opatrzony jest sumą kontrolną; • wszystkie zagubione pakiety są retransmitowane; gdy nie nadejdzie potwierdzenie w odpowiednim czasie, pakiet uważa się za zgubiony i następuje jego retransmisja; • adaptacyjny charakter transmisji – mierzy się, oddzielnie dla każdego połączenia, aktualny czas trwania podróży w obie strony i wykorzystuje się go do obierania czasu oczekiwania na retransmisję; • kontrola przeciążenia – jako miary przeciążenia używa się ilość straconych pakietów i odpowiada na nią zmniejszeniem szybkości transmisji danych; • rezerwacja buforów na dane – jeśli strona nadająca działa szybciej niż odbierająca, to przychodzące dane w którymś momencie wypełniają bufor odbiorcy, powodując wysłanie przez niego oferty zerowego okan (zerowy rozmiar bufora). Nadawca musi zaprzestać nadawania do momentu, gdy odbiorcaznowu zaoferuje dodatnią wartość tego bufora (co oznacza, że może przyjąć pewną porcję danych). Format segmentu TCP W protokole TCP wszystkie komunikaty mają jedne format, obejmujący komunikaty przenoszące dane, potwierdzenia, oferty okan czy też komunikaty ustanawiające i kończące połączenie. W TCP komunikat określa się terminem segmentu. Każdy segment wędruje, jak powiedziano wcześniej, w datagramie IP. Przykład 1.6 Struktura nagłówka TCP.

1 2 3 0123 4567 89 012345 67890123 45678901 | SOURCE PORT |DESTINATION PORT | | NEXT NUMBER | | ACKNOWLEDGEMENT NUMBER | | HL | | FLAGS| WINDOW | | CHECH SUM | PRIORITY | | OPTION | FILLING |

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

1.3 Intersieci

11

NEXT NUMBER numer kolejny – określa bieżący stan transmisji; ACKNOWLEDGEMENT NUMBER numer potwierdzenia – służy do potwierdzenia odbioru określonej porcji danych; HL przesunięcie danych – określa długość nagłówka; FLAGS flagi informacyjne na użytek protokołu; WINDOW szerokość okna – pozwala odbiorcy poinformować nadawcę o tym ile bajtów jest w stanie odebrać w danej chwili; CHECK SUM suma kontrolna; porty. Porty Ponieważ wszystkie usługi mogą wymieniać informacje w tym samym czasie, potrzebny jest mechanizm pozwalający określić nie tylko, które komputery ze sobą rozmawiają, ale także, które suługi są wykorzystywane. Właśnie w tym celu wprowadzono tak zwane numery portów. W celu nawiązanie komunikacji z serwerem internetowym, potencjalny klient potrzebuje nie tylko jego numer IP, ale również numer portu. Numer ten musi być więc z góry znany. Z tego też wzgledu poszczególne numery portów z przedziału 0-1024 są na stałe przyporządkowane różnym usługom internetowym. Oczywiście nikt nie zabroni nam udostępnić pewnej usługi na innym niż standardowo przyjętym porcie. Tylko po co to robić? Najpopularniejsze usługi internetowe i numery ich portów. Protokół FTP TELNET SMTP DNS HTTP POP3 portmap IRC

Port 20+21 23 25 53 80 110 111 194

Zadannie Transmisja danych Wiersz poleceń zdalnego hosta Nadawanie przesyłek e-mail-owych Odwzorowywanie nazw domen na postać adresów IP World Wide Web Pobieranie przesyłek e-mail-owych Program portmap Internet Relay Chat

portmap informuje komputer chcący nawiązać połączenie pod jakimi numerami dostępne są poszczególne usługi. Może on odmówić podania numerów, któr nie są dostępne dla wszystkich.

1.3.6

IP v. 6

32-bitowe adrest IP na pozór wystarczają do zaadresowania niemal nieograniczonej liczby urządzeń wpiętych do Sieci. Szacuje się jednak, że ich pula wyczerpie się pomiędzy rokiem 2005 a 2010. Problem zbyt wąskiej przestrzeni adresowej IP rozwiązuje się szukając oszczędności w dysponowaniu zasobami. Stało się to możliwe dzięki wprowadzeniu technologi rutingu bezklasowego miedzy domenami (CIDR – Classless InterDomain Routing) znanej również jako supernetting. Jej podstawą była obserwacja, iż duża część zasobów adresowych przydzielanych w ramach klas A i B pozostaje nie wykorzystana: niewiele organizacji, którym przydzielono klasy A, potrzebuje kilku milionów adresów. Podobna sytuacja dotyczy adresów c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

12

Sieci

klasy B. Jeśli firma potrzebował 5000 adresów, przydzielano jej pełną klasę B, co blokowało wykorzystanie ponad 60000 pozostałych adresów, które do niej należały. Obecnie z adresem IP związana jest maska określająca ile bitów w adresie to adres sieci a ile służy do identyfikacji stacji w obszarze tej sieci. Bity równe 1 wyznaczają adres sieciowy, równe 0 – identyfikują stację. Przyjmując taką konwencję wszystkim adresom z klasy A odpowiada maska 255.0.0.0, klasy B 255.255.0.0 a C 255.255.255.0. Oczywiście nic ne stoi na przeszkodzie aby teraz adresy miały różne długości przedrostków, nie koniecznie będące wielokrotnościami 8; przez to pojęcie „klasy adresu” stało się właściwie nieaktualne. Dzięki temu można jeden adres klasy C przydzielić czterem różnym użytkownikom. Każdemu z nich przypiszemy maskę 255.255.255.192 oznaczającą, że przedrostek ma długość 26 bitów. Tym samym na identyfikacje urządzenia w każdej z tych sieci pozostaje 6 bitów. Inne metody pozwalające ograniczyć „zużycie” adresów IP, to techniki translacji NAT (Network Address Translation) lub dynamicznego przydzielania adresów (IP Masquerading). Opracowując nowy model adresów IP, IETF (Internet Engeneering Task Force) gruntownie zmodernizowało schemat adresowania w Internecie. W opublikowanym na początku 1995 roku dokumencie „The Recommendation for the IP Next Generation Protocol” (RCF 1752) zaprezentowano IP v.6, zawierający, oprócz 128-bitowej przestrzeni adresowej, hierarchiczny model adresowania, zmodyfikowany nagłówek pakietu oraz szereg usług związanych z transmisją pakietów zapewniających na przykład szyfrowanie danych czy automatyczną konfigurację adresów hostów. Wraz z poszerzeniem przestrzeni adresów w IP v. 6 pojawiły się trzy typy adresów: unicast – odpowiada najpowszechniejszemu typowi transmisji punkt-do-punkt, a więc o jednoznacznie zdefiniowanym odbiorcy. W celu ułatwienia roganizacji ruchu pakietów w sieci lokalnej, zdefiniowano dwa dodatkowe typy adresów unicastowych: • segmentowy (LLUA – Link Local Unicast Address) – ruch tak oznaczonych pakietów ograniczony jesto do określonego fragmentu sieci lokalnej • ośrodka (SLUA – Site Local Unicast Address) – ruch tak oznaczonych pakietów ograniczony jest do sieci wewnętrznej multicast – rodzina ta jest rozszerzeniem znanej z IP V. 4 idei adresów typu broadcast, które określają wielu odbiorców jednego pakietu • czasowe (transient) – zdefiniowane pod kątem konkretnego zastosowania, na przykład w celu zestawienia telekonferencji • trwałe (permanent) – definiują raczej funkcjonalne grupy odbiorców, na przykład wszystkie serwery prowadzące mirror danego serwisu tematycznego anycast – podobnie jak w przypadku adresu multicast, pakiety rozsyłane są do grupy odbiorców, jednak ich dystrybucja kończy się, gdy dowolny z nich dotrze na miejsce przeznaczenia. Nowy 128-bitowy adres IP v. 6 składa się z ośmiu szesnastobitowych części, oddzielanych dwukropkami 1716:1A1F:D0Ea:1325:3D2A:3A1D:2C6B:5A3B Znaczenie poszczególnych bitów jest następujące: • Pierwsze 3 bity to identyfikator typu adresu. • Drugi 13-bitowy segment to TLA (Top Level Aggregators) opisujący operatorów obsługujących podstawowy ruch w sieci. Przydzielany jest firmom telekomunikacyjnym zapewniającym funkcjonowanie szkieletowych, długodystansowych połączeń sieciowych. • Blok 8 bitów zarezerwowanych na przyszłość. c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

1.3 Intersieci

13

• Kolejne 24 bity to identyfikator NLA (Next Level Aggregators) identyfikujący dużych dostawców usług internetowych. • 16-bitowy identyfikator SLA (Site Level Aggregators). Odpowiednik dzisiejszych klas adresowch. Identyfikatory SLA przydzielane są organizacjom, które samodzielnie obsługują własną komunikację internetową a więc uczelniom, instytutom czy dużym firmom lub też bezpośrednim dostawcą usług internetowych. • 64-bitowy adres hosta.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

14

Sieci

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Rozdział 2

WWW 2.1

Czym jest WWW?

W książce Laury Lemay, HTML 4 – Vademecum profesjonalisty znalazłem taką odpowiedź na to pytanie: World Wide Web opisać można jako – globalny, – rozproszony, – dynamiczny, – interaktywny, – wieloplatformowy, – graficzny, – hipertekstowy system informacyjny. Rozproszony i globalny , gdyż swoim zasięgiem obejmuje „cały świat”, przy czym nie moża powiedzieć, że gdzieś jest jego centrum. Dynamiczny i interaktywny , gdyż daje możliwość natychmiastowej aktualizacji dokumentów oraz wprowadzanie zmiany w prezentowanym materiale zależnie od postępowania użytkownika. Dane mogą wędrować w obie strony, to znaczy do użytkownika (co jest oczywiste) jak i od niego do serwera WWW. Możliwa ponadto staje się komunikacja pomiędzy ludźmi, wymiana informacji i myśli w czasie rzeczywistym. Wieloplatformowy. Wszyscy użytkownicy Internetu mają dostęp do WWW na równorzędnych prawach, bez względu na to czy używają zwykłego PC-ta, rozbudowanej stacji graficznej czy mainframe’a. Nie jest ważne, czy używa się terminala tekstowego, kolorowego 14-calowego monitora, czy 25-calowego ektany plazmowego. Zawsze otrzymujemy te same informacje, co najwyżej w innej, dostosowanej do możliwości, postaci. Graficzny. Możliwość integracji w jednym dokumencie zarówno tekstu jak i grafiki, gdyż jak mówi stare chińskie przysłowie „Jeden obraz wart jest więcej niż milion słów”. Hipertekstowy. To chyba najistotniejsze pojęcie. Hipertekstem nazwiemy dokument, który oprócz bezpośrednio niesionej informacji, umożliwia tworzenie dowołań do innych obiektów w Sieci. Hipertekst umożliwia czytanie i poruszanie się po tekście lub innego rodzaju informacji wizualnej w sposób nieliniowy, zależny od tego, czego w danej chwili c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

16

WWW

chcemy się dowiedzieć. Zamiast czytać tekst po kolei, linia po lini, łatwo można przeskakiwać od punktu do punktu. Gdy zajdzie taka potrzeba, można uzyskać więcej informacji na dany temat, cofnąć się, przejść do innych tematów; ogólnie – poruszać się po tekście w sposób, który w danej chwili wydaje się najlepszy. Dokumentem o liniowej strukturze jest powieść, którą czytmy zawsze od początku do końca w ściśle określonej kolejności. Natomiast poruszając sie po encykopedii wybieramy tylko to co nas w danej chwili niteresuje. Do oglądani i poruszania się po stronach WWW, służy program zwany przeglądarką (sieciową) lub klientem WWW. Poszukiwana informacja lokalizowana jest przez przeglądarkę na podstawie adresu URL (Uniform Resource Locator): http://kolos.math.uni.lodz.pl/index.html | | | | | nazwa zasobu | nazwa serwera | protokół Większość URL-i składa się z trzech części: 1. Nazwy protokołu. Zasadniczo WWW jest samodzielnym systemem informacyjnym z własnym protokołem transmisji (HTTP – HyperText Transmission Protocol). Przeglądarki potrafią jednak oprócz niego odczytywać pliki innych serwisów internetowych. Co więcej – można tworzyć hiperpołączenia do innych systemów w taki sposób, w jaki tworzy się hiperpołączenia do stron WWW. Proces ten jest spójny i wymaga tylko jednej aplikacji. Nazwa protokołu informuje zatem przeglądarkę z jakiego rodzaju serwerem nawiązane zostane połączenie i jakiego użyć protokołu. Po nazwie protokołu występuje zawsze sekwencja trzech znaków „://”. 2. Adres internetowy w formacie FQDN identyfikujący serwer, na którym znajduje się poszukiwany zasób. Dla ułatwienia, zwykle komputerom, na których pracuje serwer WWW nadaje się nazwe „www” i zazwyczaj serwer ten obsługuje port o numerze 80. Gdyby jednak zaszła konieczność użycia innego portu, to należy podać go po nazwie serwera i dwukropku, na przykład www.w3.org:732. 3. Nazwa zasobu (położenie) zasobu na serwerze. Po otrzymaniu adresu informacji znajdującej się w sieci, przeglądarka najpierw musi uzyskać do niej dostęp a następnie, w zależności od jej typu, podejmuje odpowiednie działani związane z jej przedstawieniem. Najczęściej jest to formatowanie i wyświetlanie dokumentów WWW. Każda strona WWW to po prostu plik tekstowy zapisany w języku HTML (HyperText Markup Language). Najprostszy dokument HTML-owy. Moj pierwszy dokument

To jest nagłówek

To jest fragment tekstu z jednego akapitu.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

2.1 Czym jest WWW?

17

Strona WWW zawiera w sobie właściwą treść strony, jej strukturę oraz hiperpołączenia do innych stron, obrazów, dźwięków, filmów itp. Właśnie pobieranie dokumentów z sieci i ich prezentacja są głównymi zadaniami przeglądarki. Warto jednka podkreślić, że pomimo dostępności do tych samych informacji, sposób ich przedstawienia ściśle zależy od możliwości jakie oferuje nam konkretna przeglądarka w konkretnym systemie.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

18

WWW

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Rozdział 3

Poczta elektroniczna Poczta elektroniczna to usługa umożliwiająca wysyłanie wiadomości do każdego użytkownika Internetu. Poczta elektroniczna nazywana jest krótko „e-mail” lub „mail”. Każdy użytkownik, który chce wysyłać lub odbierać wiadomości musi posiadać adres e-mailowy. Adres taki ma następującą postać: [email protected] gdzie name - nazwa konta pocztowego na danym serwerze; serwer - unikatowa nazwa komputera; domena - opisuje gdzie dokladnie w hierarchii adresów jest dany komputer. Przykładowy adres może wyglądać tak: [email protected] W systemie poczty internetowej spotkać można trzy protokoły. SMTP (simple mail transfer protocol) wykorzystywany jest do wysyłania poczty. POP3 (post office protocol) - protokół transmisji, pozwalający na odczytywanie z serwera mailowego wiadomości umieszczonych w skrzynce pocztowej. IMAP (Internet message access protocol) - protokół umożliwiający dostęp do wiadomości bez konieczności ich ściągania. Znajmość nazw serwerów SMTP i POP3 jest konieczna aby móc korzystać z usługi poczty elektronicznej. Do wymiany wiadomości za pośrednictwem Internetu służy ściśle określony format danych. Przesyłka pocztowa składa się z następujących części: – nagłówka, – treści wiadomosci, – załączników Nagłówek Właściwy tekst poprzedza tak zwany nagłówek, w którym zapisane są różne parametry wiadomości. Oto wykaz najważniejszych wiadomości umieszcznych w nagłówku przesyłki e-mail: From Nazwa i adres e-mailowy nadawcy. To Nazwa i adres e-mailowy odbiorcy. c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

20

Poczta elektroniczna

Cc (Carbon copy) Pole to zawiera adresy innych odbiorców otrzymujących kopię danej wiadomości. Date Data wysłania wiadomości. Received Wykaz serwerów internetowych, które pośredniczyły w przekazaniu wiadomości do nadawcy do adresata. Subject Krótka informacja o treści przesyłki (temat listu). Zwykły format przesyłek poczty elektronicznej nie pozwalal na dołączanie do wiadomości plików binarnych (czyli wiadomości nie zapisanych w postaci tekstowej). Z tego względu rozszerzono tradycyjny format e-mailowy o standard MIME (Multipurpose Internet Mail Extension). Format ten definiuje mechanizm pozwalający na umieszczanie w przesyłce e-mailowej dowolnych plików danych oraz rozszerza strukturę nagłówka o następujące pola: MIME-Version Pole zawiera numer wersji użytego standardu MIME. Content-type Określa format w jakim zapisana jest wiadomość oraz dołączone do niej dane. W przypadku zwykłych wiadomości tekstowych pole to ma zazwyczaj wartość text/plain;charset=”iso-8859-2”mówiącą, że jest to zwykła przesyłka (text/plain), której użyto standardu kodowania znaków ISO 8859-2. Content-Transfer-Encoding Określa sposób transmisji danych: – 7bit – niekodowany tekst 7 bitowy, – 8bit – niekodowany tekst 8 bitowy, – binary – dane binarne – Quoted-printable – tekst 7 bitowy z niektórymi znakami kodowanymi. Symbole, którym nie można przyporządkować 7 bitowych kodów ASCII, są przekształcane na ciągi trzyznakowe (znak ”=”i dwie cyfry szesnastkowe). – Base64 – tekst typu Base64 Message-ID Unikatowy numer identyfikujący daną przesyłkę pocztową. X-Mailer Nazwa programu, za pomocą którego utworzono daną wiadomość. Oto jak w całości może wyglądać przykładowa wiadomość: From [email protected] Wed Oct 31 21:14:47 2001 +0100 Status: R X-Status: X-Keywords: Return-Path: Received: from localhost (us2@localhost) by localhost.localdomain (8.11.0/8.11.0) with ESMTP id f9VKEkd03709 for ; Wed, 31 Oct 2001 21:14:46 +0100 Date: Wed, 31 Oct 2001 21:14:45 +0100 (CET) From: To: [email protected] Subject: Test Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To jest testowa wiadomosc c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

21

Załączniki Załącznikami nazywamy pliki jakie dołączymy do przesyłanej wiadomości. Treść wiadomości Jest to część zawierająca wiadomość, można więc wpisać tutaj to co się chce. Dobrym zwyczajem jest podpisywanie się pod wiadomości. Można w tym celu wykorzystać podpis elektroniczny, który automatycznie dodawany będzie do każdego listu, na przykład taki: ==================================== Piotr Fulmanski e-mail: [email protected] ==================================== Przesyłając wiadomość tekstową trudno jest oddać klimat jaki towarzyszyłby jej bezpośredniemu przekazywaniu. W tym celu wymyślono wiele specjalnych kombinacji znaków mających oddwać te ulotne niuanse towarzyszące wymianie myśli (patrz dodatek 10). Należy ostrożnie korzystać z dużych liter. Duże litery oznaczają krzyk. Na przykład zupełnie inny charakter będą miały te dwie wiadomości: PRZYJDŹ DO MNIE (tłumaczenie: przyjdź do mnie, bo jak nie to . . . ocenzurowano . . . ), oraz Przyjdź do mnie (tłumaczenie: jak będziesz miał wolną chwilkę, to wpadnij na momencik). Od opisanej powyżej zasady istnieje jednak pewne odstępstwo. Dużych liter używa się do zapisu pewnych skrótów myślowych. Niektóre z nich przedstawiono w dodatku 11. Aby móc wysłać daną wiadomość musimy podać co najmniej jej adresata (pole Do lub To). Ponadto możemy podać listę osób, które mają otrzymać kopię wiadomości (pole DW lub Cc). Jeśli chcemy wysłać kopię jeszcze do kogoś, ale tak by osoby wymienione w polu Cc się o tym nie dowiedziały, wpisujemy jej adres w pole Bcc(blind carbon copy). Rozważmy następujące przykłady. Do: moja_zona@gdzies_tam DW: moj_przyjaciel_Pawel@gdzies; moj_przyjaciel_Grzes@gdzie_na_filipinach; kochanka@gdzies_w_okolicy; Temat: Wyjazd Musze pilnie wyjechac. Nie bedzie mnie w biurze. Nie probuj do mnie dzwonic. Po wysłaniu takiej wiadomosci lepiej abyśmy nigdy nie pojawili się w biurze, o domu nie wspominając. Do: moja_zona@gdzies_tam DW: moj_przyjaciel_Pawel@gdzies; moj_przyjaciel_Grzes@gdzie_na_filipinach; Bcc: kochanka@gdzies_w_okolicy; Temat: Wyjazd Musze pilnie wyjechac. Nie bedzie mnie w biurze. Nie probuj do mnie dzwonic. Ta wiadomość nie zmieni istniejącego, jakże odpowiadającego nam, stanu rzeczy. Ponadto zawsze warto podać temat listu (pole Temat lub Subject). c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

22

Poczta elektroniczna

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Rozdział 4

Telnet Telnet jest usługą polegającą na pracy na odległym komputerze przez sieć lub modem. Oznacza to, że daje on użytkownikowi będącemu w jednym systemie komputerowym (lokalnym) możliwość interakcyjneh pracy na odległych maszynach, pozwalając na korzystanie z usług oferowanych przez dany komputer (zdalny), niezależnie od tego, czy znajduje się on tuż za ścianą, czy na innym kontynencie. Lokalna maszyna emuluje terminal odległego komputera, co stwarza wrażenie pracy na zdalnym systemie, z którum nawiązano połączenie. Program (klient) realizujący Telnet, musi emulować terminal właściwy dla danego zdalnego systemu. Najczęściej spotyka się następujący format wywołania programu: telnet Podanie polecenia telnet bez argumentów wprowadza w tryb komend, który jest oznaczany za pomocą znaku zgłoszenia: telnet> Podanie jako argument adresu zdalnego komputera powoduje automatyczne wykonanie komendy open z podanym sdresem. Opcjonalnie można podać numer portu, z którym chcemy się połączyć. Komendy telnetu ? hkomendai – wyświetla plik pomocy dotyczący całego programu klienta lub wyszczególnionej komendy. open komputer hporti – nawiązuje połączenie z podanym komputerem; domyślnie przyjmowanym numerem portu jest 23. close – kończy sesję i przechodzi w tryb komend. quit – kończy sesję i wychodzi z programu. mode type – gdzie type oznacza line lub char. Zapytanie czy możliwe jest przejście w podany tryb wysyłania (line – linia po lini, char – znak po znaku). Odległy komputer, w miarę możliwości, ustawia żądany tryb. Ponadto istnieją polecenia typu status, display, send, set używane do ustawienia opcji konfiguracyjnych; ich dokładny opisu znaleźć można w dokumentacji systemu. c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

24

Telnet

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Rozdział 5

FTP FTP jest niezależnym od systemu operacyjnego protokołem transmisji plików pomiędzy komputerami w sieci. Określenie to obejmuje także usługę udostępniania plików i programów w Internecie. W celu wysłania lub pobrania pliku z serwera FTP należy się na niego zalogować. Jak to zrobić, pokażemy za chwilę. Teraz kilka słów o logowaniu. „Logować” się, to znaczy uzyskać prawa do wykonywania operacji na jakimś komputerze. Najczęściej do logowania się na dany komputer mają prawo osoby posiadające na nim konta.1 Jeśli więc mamy na jakimś komputerze konto to logujemy się na nie, podając login i hasło związane z tym komouterem. Jednak w wielu sytuacjach konta nie będziemy posiadać. Wówczas logujemy się na uniwersalne konto (jeśli oczywiście takie jest) użytkownika o nazwie anonymous a jako hasło podajemy swój adres e-mail-owy.2 Zwykle system praw ustawiony jest tak, że jako anonymous możemy jedynie pobierać pliki, natomiast jako pełnoprawny użytkownik możemy robić na nich dowolne operacje w ramach przyznanych praw ograniczonych zwykle do naszego katalogu domowego. Procedurę transferu plików można przeprowadzić na trzy sposoby : • za pomocą przeglądarki stron WWW, • za pomoca specjalnego programu działającego w trybie graficznym, • za pomoca programu działającego w trybie tekstowym.

5.1

FTP i przeglądarka WWW

Chcąc uzyskać dostęp do serwera FTP z poziomu przeglądarki, wpisujemy po prostu jego adres (rysunek 5.1 i w oknie przeglądarki robaczymy zawartość udostępnionego nam katalogu. W ten oto sposób uzyskaliśmy połączenie z serwerem FTP jako użytkownik anonimowy. Jeśli na komputerze, z którym się łączymy, nie ma konta anonimowego, to zostaniemy poproszeni o podanie swojego loginu i hasła (jeśli oczywiście mamy)(rysunki 5.3, 5.4). Jeśli natomiast 1 „Posiadać konto” to znaczy mieć przydzielone przez osobę nadzorującą pracę danego komputera prawa związane z przechowywaniem i wykonywaniem na nim programów i danych. 2 W zasadzie to wystarczy co kolwiek przypominającego adres e-mail-owy, ale przyzwoitość wymaga aby były to poprawne dane.

Rysunek 5.1: W pole adresu wpisujemy adres serwera FTP.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

26

FTP

Rysunek 5.2: Okno przeglądarki z zawartością serwera FTP.

Rysunek 5.3: Autoryzacja użytkownika.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

5.2 FTP i klient graficzny

27

Rysunek 5.4: Wygląd okienka autoryzacyjnego z rysunku 5.3.

Rysunek 5.5: Adres wpisywany w przypadku logowania się na swoje konto.

chcemy mieć dostęp do swojego prywatnego konta na odległym komputerze, na którym jest konto anonimowe, to musimy w pole adresu, przed adresem komputera, wpisać swój login i hasło (rysunek 5.5). W tym przypadku adres przyjmuje postać ftp://identyfikator_użytkownika:hasło@nazwa_serwera Zwracam uwagę na istotny fakt, że w tej postaci wpisywane hasło nie jest w żaden sposób ukryte (tutaj hasłem jest Gh34B7de).

5.2

FTP i klient graficzny

Ten sposób jest chyba najwygodniejszy dla osób, które tylko od czasu do czasu używają FTP. Po prostu nie trzeba pamiętać tutaj żadnych komend - najczęściej większość operacji jest intuicyjna i prezentowana w czytelny, a’la Norton Commander, sposób. Spozób nawiązania połączenia zilustrujemy na przykładzie programu Windows Commander. Kolejność postępowania przedstawiają rysunki 5.6–5.14. Ostatnią czynnością jest podanie hasła. Logując się na swoje konto okienka przybiorą postać z rysunków 5.11 i 5.12. Sytuację gdy uzyskujemy połączenie jako użytkownik anonimowy przedstawia rysunek 5.13. Jeśli wszystkie dany były poprawne to powinniśmy ujrzeć ekran podobny do przedstawionego na rysunku 5.14 i od tej pory możemy na zdalnym komputerze wykonywać wszelkie operacje na plikach, jak na dysku lokalnym. Połączenie kończymy naciskając przycisk Disconnect znajdujący się nad okienkami przedstawiającymi zawartość katalogów.

5.3

FTP i klient tekstowy

Sposób ten postrzegany jest przez wielu jako najbardziej „tajemniczy”. Wiąże się to z koniecznością opanowania i operowania poleceniami wprowadzanymi z klawiatury, co przy dzisiejszej tendencji do technologi „przeciągnij i upuść” i graficznych środowisk pracy nie jest c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

28

FTP

Rysunek 5.6: Z menu wybieramy polecenie „FTP New Connection” z menu „Commands”.

Rysunek 5.7: Następnie wpisujemy adres serwera i jeśli będziemy logować się na konto anonimowe zaznaczamy opcje „anonymous connection”.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

5.3 FTP i klient tekstowy

29

Rysunek 5.8: Okienko z adresem serwera.

Rysunek 5.9: Jeśli logujemy się na swoje konto to zostaniemy poproszeni o podanie swojego login-u.

Rysunek 5.10: Okienko do wpisania login-u.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

30

FTP

Rysunek 5.11: Podajemy hasło.

Rysunek 5.12: Wygląd okienka, gdy podajemy swoje hasło.

Rysunek 5.13: Wygląd okienka gdy jako hasło podajemy swój adres e-mail-owy.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

5.3 FTP i klient tekstowy

31

Rysunek 5.14: Wyglad okna aplikacji po poprawnym zalogowaniu (lewe okienko przedstawia zawartość zdalnego komputera).

mile widziane przez wykłych użytkowników.3 Istnieje wiele klientów FTP, w każdym możemy odnaleźć jednak standardową grupę poleceń pozwalających nawiązać połączenie i przeprowadzić transfer plików. Zwykle polecenia help lub ? wyświetlają opis wskazanej komendy; wydane bez argumentu podają spis wszystkich komend. Najczęściej spotykane komendy programu FTP: ! polecenie – wkonanie polecenia na lokalnej maszynie. ascii – ustala tryb transferu na ASCII (dla przesyłania plików tekstowych). binary – ustala tryb transferu na binarny (dla przesyłania plików binarnych). bye – kończy sesję FTP z odległym komputerem i kończy FTP. cd katalog zdalny – zmienia katalog roboczy na odległej maszynie na katalog zdalny. close – kończy sesję FTP z odległym komputerem i wraca do interpretera ftp. delete plik zdalny – usuwa plik zdalny na odległej maszynie. dir katalog zdalny – wypisuje zawartość katalogu katalog zdalny. get plik zdalny hplik lokalnyi – pobiera plik zdalny i zapisuje na lokalnej maszynie. Jeżeli nie określono nazwy lokalnego pliku, nadawana jest nazwa plik zdalny. hash – przełącza wyświetlanie znaku hash (#) po każdym przesłanym bloku. lcd dir – zmienia na dir lokalny katalog bieżący. 3 Unix-owcy wszystkich krajów nie miejcie mi tego zdania za złe, ale taka jest prawda. Odestek ludzie wklepujących komendy, dla których jest to zwykły sposób pracy a nie „kara za grzechy” jest na prawdę niewielki.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

32

FTP

Rysunek 5.15: Wygląd okana terminala.

ls hdiri – wyświetla zawartość katalogu. mdelete plik zdalny – usuwa określone przez wzorzec pliki z odległej maszyny. mget plik zdalny – pobiera określone pliki z odległej maszyny i umieszcza je w lokalnym bieżącym katalogu. mkdir nazwa katalogu – tworzy katalog nazwa katalogu na odległej maszynie. mput plik lokalny – przesyła kilka lokalnych plików z bieżącego katalogu do katalogu bieżącego na odległej maszynie. open komputer hporti – nawiązuje połączenie z określonym przez adres serwerem FTP. put plik lokalny hplik zdalnyi – umieszcza lokalny plik na odległej maszynie. pwd – wyświetla nazwę bieżącego katalogu roboczego na odległej maszynie. quit – jak bye. rename stara nazwa pliku nowa nazwa pliku – zmiana nazwy pliku na odległej maszynie. rmdir nazwa katalogu – usuwa katalog na odległej maszynie. send plik lokalny hplik zdalnyi – jak put. Pokażę teraz przykład typowej sesji. W oknie terminala (takim jak na rysunku 5.15) wpisujemy - patrz rysunek 5.16(polecenia, które wprowadzamy z klawiatury są pogrubione): fulman@monster:ftp moon.math.uni.lodz.pl Oznacza to, że uruchamiamy program o nazwie ftp i chcemy uzyskać połaczenie z komputerem o nazwie moon. Odpowidź serwera przedstawiona jest na rysunku 5.17 Podajemy zatem nasz, lub uniwersalny (anonimowy) login Name (moon.math.uni.lodz.pl:fulman):fulman

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

5.3 FTP i klient tekstowy

Rysunek 5.16: Wygląd okana terminala po nawiązaniu połączenia z serwerem FTP.

Rysunek 5.17: Wprowadzamy login i hasło.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

33

34

FTP

Rysunek 5.18: Przykładowy wygląd okana terminala po zalogowaniu się na serwer FTP.

lub Name (moon.math.uni.lodz.pl:fulman):anonymous a następnie po odpowiedzi serwera hasło (rysunek 5.17 331 Password required for fulman. Password:znaki wprowadzanego hasła nie będą widoczne. Jeśli wszystkie dane zostały poprawnie zweryfikowane, powinniśmy ujrzeć komunikat powitalny jak na rysunku 5.18. Teraz możemy przystąpić do pobierania i wysyłania plików. Najpierw zobaczmy w którym miejscu w drzewie plików zdalnego komputera się znajdujemy ftp> pwd 257 "/home/users/fulman" is current directory. Załóżmy, że chcemy pobrać coś z katalogu tmp. Przejdźmy zatem do niego ftp> cd tmp 250 CWD command successful. Teraz zobaczymy jakie pliki tam są ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for total 160 -rw-r--r-- 1 fulman users 60 Apr 11 -rw-r--r-- 1 fulman users 50 Apr 11 -rw-r--r-- 1 fulman users 50 Apr 11 226 Transfer complete.

’bin/ls’. 13:31 dane1.dat 14:11 wynik1.dat 15:53 wynik2.dat

Najpierw pobierzemy plik dane1.dat a potem pliki wynik1.dat i wynik2.dat. c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

5.3 FTP i klient tekstowy

35

ftp> get dane1.dat local: dane1.dat remote dane1.dat 200 PORT command successful. 150 Opening BINARY mode data connection for ’dane1.dat’ (60 bytes). 226 Transfer complete. 60 bytes received in 0.01 secs (912.0 kB/s) ftp> mget wy* mget wynik1.dat? y 200 PORT command successful. 150 Opening BINARY mode data connection for ’wynik1.dat’ (50 bytes). 226 Transfer complete. 50 bytes received in 0.01 secs (885.9 kB/s) mget wynik2.dat? y 200 PORT command successful. 150 Opening BINARY mode data connection for ’wynik2.dat’ (50 bytes). 226 Transfer complete. 50 bytes received in 0.02 secs (607.3 kB/s) Jeśli natomiast chcemy z naszego komputera (przy którym teraz siedzimy) wysłać na komputer zdalny pliki test1.dat oraz inf1.dat i inf2.dat, znajdujące się w katalogu \ home \ fulman \ doc, to napiszemy ftp> put \ home \ fulman \ doc \ test1.dat ftp> mput \ home \ fulman \ doc \ inf* mput inf1.daty 200 PORT command successful. 150 Opening BINARY mode data connection for ’inf1.dat’ (33 bytes). 226 Transfer complete. 33 bytes sent in 0.1 secs (307.3 kB/s) mput inf2.daty 200 PORT command successful. 150 Opening BINARY mode data connection for ’inf2.dat’ (74 bytes). 226 Transfer complete. 75 bytes sent in 0.08 secs (479.3 kB/s) Pracę kończymy wydając polecenie ftp> bye Należy pamiętać o tym aby przełączyć tryb transferu w zależności od przesyłanych plików. Jeśli bowiem będziemy mieli ustawiony tryb binarny, a będziemy pobierać wiadomość tekstową jak na rysunku 5.19, to przyjmie ona postać z rysunku 5.20.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

36

FTP

Rysunek 5.19: Wygląd danych przed transmisją.

Rysunek 5.20: Wygląd danych po transmisji.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

Rozdział 6

HTML 6.1

Jak sobie pościelesz . . . czyli trochę o BHP pracy

Projektowanie prezentacji WWW, podobnie jak tworzenie wstępnego zarysu książki, planowanie, czy malowanie może być czasem bardzo złożonym procesem. Wcześniejsze opracowanie ogólnego planu może być bardzo pomocne w pracy nad szczegółowymi rozwiązaniami. Omówimy tutaj pokrótce wszystkie najważniejsze aspekty tego zagadnienia, w tym jak: • zdecydować, jaką treść chce się zaprezentować; • wyznaczyć cele, którym służyć ma prezentacja; • podzielić treść na główne tematy; • stworzyć ogólny plan prezentacji.

6.1.1

Treść i cel pracy

To co chce się umieścić w sieci, nazywamy treścią. Jest to bardzo ogólne pojęcie określające tekst, grafikę, wszelkiego rodzaju inne media i związki zachodzące między nimi w postaci jakiejkolwiek interakcji. Opowiadając innej osobie o czym jest nasza własna strona, opisujemy właśnie jej treść. Jakie treści można umieszczać w sieci WWW? Mówiąc krótko — wszystkie.1 Jedyne ograniczenie, jakie posiada sieć WWW, to ludzka wyobraźnia. Jako dobre ćwiczenie, proponuję podać kilka powodów, dla których ktoś miałby odwiedzić Twoją stronę, lub dla których Ty odwiedziłbyś ją, gdyby została przygotowana przez kogoś innego. Cel prezentacji nie musi być wzniosły i poważny. Może być zrozumiały tylko dla autora, ale ważne jest jego wyraźne określenie. Pomoże to podczas dalszych prac organizacyjnych, projektowych na tworzeniu strony kończąc. Jasno określony cel pozwala skupić się na wybranym zagadnieniu, odrzucając te, które mogłyby zaciemnić obraz sytuacji.

6.1.2

Podział treści na główne tematy

Mając jasno określony cel, należy zorganizować treść tak, aby można ją było podzielić na kilka zasadniczych tematów, grupując powiązane ze sobą informacje pod jednym hasłem. Na tym etapie rozwoju prezentacji nie trzeba być bardzo precyzyjnym. Najważniejsze, to ustalenie tego, co będzie opisywane na projektowanych stronach. Jeśli na przykład chcemy stworzyć stronę jakiegoś zespołu muzycznego, lista tematów mogłaby prezentować się następująco: * Historia zespołu; 1 Oczywiście dopuszczalne w ramach zdrowego rozsądku. Co to jest „zdrowy rozsądek”? To zależy od przyjętej definicji. Każdy może przyjąć swoją definicję i wówczas wszystkie tematy są dopuszczalne.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

38

HTML

Rysunek 6.1: Struktura hierarchiczna.

Rysunek 6.2: Struktura liniowa.

* Biografie poszczególnym członków zespołu; * Dyskografia; * Teksy utworów; * Informacje o . . . . Można wymienić dowolną ilość tematów, ale każdy z nich powinien być w miarę zwięzły. Jeżeli jakieś zagadnienie jest zbyt obszerne, należy je rozbić na mniejsze. Jeżeli, przeciwnie, okazuje się, że krótkich tematów jest za dużo, spróbujmy pogrupować je w kilka bardziej ogólnych tematów.

6.1.3

Wybór struktury

Mając jasną wizję tego, co chce się pokazać, oraz ogólną listę tematów można przejść do kroku następnego, to jest do podziału informacji na strony WWW. Pomocne może okazać się tutaj przedstawienie najczęściej stosowanych struktur prezentacji. Z opisanych struktur najbardziej „przemawiającą” do mnie jest struktura hierarchiczna lub mieszana, ale z przewagą hierarchicznej. Struktura sieciowa, według mnie, odpowiednia jest na przykład do zaprezentowania jakiejś przygodowej gry tekstowej; do innych celów — nie polecam. Jest to jednak moje prywatne zdanie i każdy postąpi jak zechce.

6.1.4

Ogólny zarys strony

Ważne jest aby przed przystąpieniem do właściwego tworzenia strony sporządzić sobie na kartce/kartkach coś na kształt scenariusza. Jest to zarys tego, jak wyglądać będzie gotowa prezentacja. Zawiera między innymi informacje o tym, na których stronach znajdą się poszczególne tematy, opisy głównych hiperpołączeń, jakiego rodzaju elementy graficzne będą użyte i w których miejscach. Pozwala to spojrzeć na całość zanim jeszcze powstanie i dokonać ewentualnych korekt. Mając taki plan można rozpocząć tworzenie strony, nie martwiąc się, że zapomnimy o czymś. Teraz skupiamy się wyłącznie na przekazywaniu treści. c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

6.2 Podstawą dobrego jedzenia jest dobry stół . . .

39

Rysunek 6.3: Struktura sieciowa.

6.2

Podstawą dobrego jedzenia jest dobry stół . . .

. . . a podstawą dobrego dokumentu HTML są . . . dobre podstawy. Kończmy więc z tym wodolejstwem i przechodźmy do konkretów.

6.2.1

Czym jest HTML?

HTML jest językiem opisu strony, a nie wyglądu jej poszczególnych elementów. Idea polega na tym, że większość dokumentów posiada pewne cechy wspólne, takie jak nagłowki, akapity czy listy. HTML nie mówi nic na temat, jak powinna wyglądać strona, kiedy znajdzie się na ekranie. Znacznik HTML wskazuje tylko, że dany element to nagłówek bądź lista, ale w żaden sposób nie określa, jak ten nagłówek czy lista mają być przedstawione. Za wizualizację dokumentu HTML odpowiedzialna jest przeglądarka. Dokonuje one tego na podstawie swoich indywidualnych ustawień. Taki sposób działania jest konsekwencją przyjętego założenia, iż najważniejszym celem publikowania czegokolwiek na WWW jest to, aby informacje mogły trafić do jak największej rzeszy odbiorców na całym świecie. Ma to być możliwe z każdego rodzaju komputera, bez wględu na moc procesora typ karty graficznej czy monitora. WWW bierze te wszystkie różnice pod uwagę i zrównuje w prawach wszystkie systemy i wszystkie przeglądarki. Dlatego mały apel: Projektując stronę WWW nigdy nie opieraj się na tym, jak wygląda ona w przeglądarce, której sam używasz. Zawsze staraj się projektować stronę tak, aby działała w większości przeglądarek. Koncentruj się na dobrej organizacji treści, tak aby była ona przejrzysta, łatwa do odczytania i zrozumienia.

6.2.2

Podstawy HTML-a

Znaczniki HTML jest językiem znaczników. Pisanie w tego typu języku oznacza tyle, że praca rozpoczyna się od napisania tekstu, do którego następnie dodaje się spacjalne sekwencje znaków określające różne elementy strony. Elementy te, jak powiedziano wcześniej, dają różny, zależny od przglądarki efekt finaly. Większość znaczników ma postać: tekst Znaczniki są niezależne od wielkości liter. Następujące zapisy są równoważne: c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

40



HTML





Warto jednak na coś się zdecydować i konsekwentnie to stosować. Przy bardziej złożonych dokumentach, łatwo jest stracić kontrolę nad znacznikami. Częstą przyczyną błędnego działania strony jest brak znacznika zamykającego w którymś miejscu. Dlatego radzę zawsze pisać od razu oba znaczniki a dopiero między nie wstawiać tekst — trudniej jest sie pomylić. Kod źródłowy Do tego aby stworzyć stronę WWW, wystarczy nam zwykły edytor tekstu, może być najbardziej prymitywny. Kod w HTML-u jest po prostu zwyczajnym plikiem tekstowym, o czym można przekonać się ogladając źródło dowolnej strony. Przy okaji mała uwaga. Za finalną postać dokument, jak zauważono wcześniej, odpowiedzialna jest przeglądarka. Dlatego nie ma znaczenia jak będzie wyglądał on w kodzie źródłowym. Poniższe zapisy dadzą ten sam efekt.

Kto się spóźnia, kradnie cudzy czas

Kto się spóźnia, kradnie cudzy czas

Kto kradnie



się cudzy czas

spóźnia

,

Pierwszy dokument Uruchommy zatem jakiś edytor tekstu i napiszmy nasz pierwszy dokument. Tradycyjnie2 będzie to „coś” wyświetlające napis „Witaj świecie” (plik pierwsza_strona.htm). Mój pierwszy dokument Witaj świecie!

Struktura Pierwszym znacznikiem struktury, znajdującym się na każdej stronie jest hHTMLi. Mówi on o tym, że zawartość odczytywanego właśnie pliku to kod napisany w HTML-u. Cała zawartość pliku powinna najdować się pomiedzy początkowym i końcowym znacznikiem hHTMLi: ... opis strony ... 2 Od tego chyba wszyscy zaczynają pisane programów w jakimkolwiek nowo poznanym języku. Przynajmniej ja robię tak na pewno.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

6.2 Podstawą dobrego jedzenia jest dobry stół . . .

41

Rysunek 6.4: Pierwszy dokumnet HTML-owy.

Para znaczników ... wyznacza nagłowek strony. W obrębie tego znacznika znajduje się tylko kilka innych znaczników, przekazujących najbardziej istotne informacjr o stronie. Informacje te umieszcza się w obrębie znacznika hMETAi. Pierwszy z atrybutów to description, zawierający krótki opis strony. Podane tutaj informacje wyswietlane są przez wyszukiwarki pod nazwą strony. Użycie atrybutu keywords umożliwia wyszukiwarkom skatalogowanie strony i określenie jej tematyki. Użycie atrybutu author umożliwia podanie informacji o autorze strony. lub Aby tekst był poprawnie wyświetlany przez preglądarkę, należy koniecznie podać informacje o standardzie kodowania znaków. Jeśli strona jest przygotowywana w zwykłym edytorze tekstów w systemie Windows wybieramy windows-1250, jeśli w Linux-ie – iso-8859-2. Korzystając ze specjalnego programu do edycji stron, mamy zwykle możliwość, niezależnie od systemu, wybrania sposobu kodowania. Powyższy znacznik określa, że używanym na stronie językiem jest język polski. Pozostała część strony, czyli tekst, połączenia, grafika itp. znajdują się pomiędzy znacznikami ... Każda storna powinna posiadać tytuł. Z tego tytułu korzystają później przeglądarki i programy katalogujące strony WWW. Do nadawania tytułu służy znacznik hTITLEi. c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

42

HTML

Rysunek 6.5: Wygląd nagłówków.

Nagłówki Nagłówki służą do podziału tekstu na części. Znacznik nagłówka wygląda następująco:

tekst nagłówka

Liczby określają poziom nagłówka (od H1 do H6). Nagłówki nie są numerowane podczas wyświetlania. Różnią się między sobą wielkością i atrybutami czcionki. Zobaczmy jak to wygląda (naglowki.htm). Wygląd nagłówków

Nagłówek

Nagłówek

Nagłówek

Nagłówek

Nagłówek
Nagłówek

poziomu poziomu poziomu poziomu poziomu poziomu

1
2 3 4 5 6



Akapity i . . . Mając na stronie odpowiednie tytuły i nagłówki, można dopisać do niej trochę treści w postaci zwykłych akapitów. Do onaczenia akapitu używa się następującego znacznika:

tekst akapitu

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

6.2 Podstawą dobrego jedzenia jest dobry stół . . .

43

Rysunek 6.6: Akapity.

Rysunek 6.7: Zastosowanie znacznika hBR /i.

Przykładowy kod znajduje się w pliku akapity.htm. Formatowaniem, to znaczy rozmieszczeniem tekstu na stronie zajmuje się przeglądarka. W zasadzie nie powinno się w ten proces ingerować. Można jednak zasugerować przeglądarce pewne rzeczy. Jedną z nich jest miejsce łamania wiersza, czyli miejsce, w którym kończy się wiersz i przechodzimy do następnego. Służy do tego znacznik hBRi3 . Działanie jego ilustruje plik o nazwie lamanie.htm. Listy Najpowszechniej, oprócz nagłówków i akapitów, używanym elementem HTML-a są listy. Listy numerowane List numerowane objęte są znacznikami hOLi . . . h/OLi, a każdy element listy rozpoczyna się od znacznika hLIi (nie ma w tym przypadku znacznika kończącego). 3 Zgodnie z najnowszymi wytycznymi każdy znacznik powinien mieć znacznik zamykający. Ponieważ trudno wskazać miejsce, gdzie miałby zamykać się znacznik hBRi, dlatego będziemy go pisać raczej jako hBR /i.

c

2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

44

HTML

Rysunek 6.8: Lista numerowana (cz. 1).

Listy numerowane można dopasować do własnych potrzeb na dwa sposoby: można określić schemat numeracji oraz liczbę, od której ma się ona rozpocząć. W tym celu zdefiniowano atrybut TYPE, który może przyjąć następujące wartości: • "1": standardowa numeracja za pomocą liczebników arabskich (1, 2, 3, itd.). • "a": numeracja za pomocą kolejnych, małych liter alfabetu (a, b, c, itd.). • "A": numeracja za pomocą kolejnych, dużych liter alfabetu (A, B, C, itd.). • "i": numeracja za pomoca kolejnych liczb rzymskich zapisanych małymi literami (i, ii, iii, itd.). • "I": numeracja za pomoca kolejnych liczb rzymskich zapisanych dużymi literami (I, II, III, itd.). Schemat numeracji zapisuje się wewnątrz znacznika hOLi w następujacy sposób:
    Atrybut START pozwala na określenie, od jakiej liczby lub litery należy rozpocząć numerację.
        Przykładowy kod znajduje się w pliku lista_numerowana.htm. Listy wypunktowane Listy wypunktowane objęte są znacznikami hULi . . . h/ULi. Atrybut TYPE pozwala zmienić element wykorzystywany do formatowania takiej listy. Może on przyjmować następujące wartosści: "disc",

        "square",

        "circle"

        Przykładowy kod znajduje się w pliku lista_wypunktowana.htm. c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        6.2 Podstawą dobrego jedzenia jest dobry stół . . .

        Rysunek 6.9: Lista numerowana (cz. 2).

        Rysunek 6.10: Lista wypunktowana.

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        45

        46

        HTML

        Rysunek 6.11: Lista definicji.

        Rysunek 6.12: Listy menu i katalogów.

        Lista definicji Listy definicji różnią się nieznacznie od pozostałych. Każdy element listy składa się bowiem z dwóch części: pojęcia i jego definicji. Lista definicji objęta jest znacznikami hDLi . . . h/DLi. Znacznik hDTi oznacza pojęcie, a hDDi — jego definicje. Przykładowy kod znajduje się w pliku lista_definicji.htm. Listy menu i katalogów Poza typami list wymienionych powyżej można spotkać jeszcze tzw. menu i katalogi. W praktyce ten typ list stosowany jest bardzo rzadko, między innymi dlatego, że prawie nie różni się on od pozostałych. Listy menu objęte są znacznikami hMENUi . . . h/MENUi, listy katalogów zaś znacznikami hDIRi . . . h/DIRi. Przykładowy kod znajduje się w pliku listy_menu.htm. Listy zagnieżdżone Oczywiście wymienione typy list można zagnieżdżać tworząc bardziej zaawansowane formy. Przykładowy kod znajduje się w pliku listy_zagn.htm. Komentarze Składnia komentarza jest następująca: c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        6.3 Połączenia

        47

        Rysunek 6.13: Listy zagnieżdżone.

        Ćwiczenie 6.1 Proszę napisać dokument składający się z kilku akapitów zawierających oprócz tekstu listy i poprzedzonych różnymi nagłówkami.

        6.3

        Połączenia

        Do utworzenia połączenia w języku HTML potrzebne są dwie informacje: * Nazwa pliku (wraz z ewentualną ścieżką), do którego będzi prowadziło połączenie. * Tekst, który będzie wyróżniony przez przeglądarkę i po wybraniu którego nastąpi realizacja połączenia (na stronie widoczny będzie tylko ten tekst). Do tworzenia hiperpołączeń na stronach HTML służy znacznik hAi . . . h/Ai. Na przykład zapis Powrót do strony głównej oznacza odnośnik do pliku "index.htm". Napis mieszczony pomiędzy znacznikami hAi . . . h/Ai będzi jakoś wyróżniony (jak to zależy od przeglądarki) aby zasygnalizować fakt, że po jego naciśnięciu przeniesiemy się w inne miejsce dokumentu (patrz 6.14). Jeżeli po HREF podana zostanie tylko nazwa pliku, domyślnie poszukiwany będzie on w tym samym katalogu, w którym znajduje się aktualnie oglądana strona. Jest to tak zwana ścieżka względna. Ścieżki względne mogą również zawierać nazwy katalogów, lub też wskazywać na pewną ścieżkę z punktu widzenia bieżącego katalogu. Nazwy plików i katalogów oddzielone są od siebie znakiem „/”, znak „..” oznacza natomiast katalog nadrzędny do bieżącego. Oto kilka przykładów: c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        48

        HTML

        Rysunek 6.14: Odnośnik w dokumencie.

        HREF="index.htm" Plik "index.htm" znajduje się w bieżącym katalogu. HREF="kat1/index.htm" Plik "index.htm" znajduje się w katalogu "kat1", który z kolei umieszczony jest w bieżącym katalogu. HREF="../index.htm" Plik ”index.htmźnajduje się w katalogu nadrzędnym dla bieżącego. Innym rodzajem ścieżek są ścieżki bezwzględne, które tworzone są w oparciu o bezwzględną pozycję pliku. Różnica między tymi ścieżkami jest następująca. Ścieżka względna wskazuje na pozycję innego pliku z punktu widzenia bieżącej pozycji w drzewie katalogów, natomiast ściezka bezwględna to pełna ścieżka dostępu do pliku, począwszy od najwyższego punktu hierarchicznej struktury drzewa katalogów. Oto kilka przykładów: HREF="/home/fulman/public_htm/index.htm" Plik "index.htm" znajduje się w katalogu "/home/fulman/public\_htm/". HREF="/d|/kat1/index.htm" Plik "index.htm" znajduje się w katalogu "kat1" na dysku D (zamiast d: piszemy d|). Jeśli nie ma takiej potrzeby zdecydowanie lepiej jest stosować scieżki względne. Tak przygotowane dokumenty będą działały bez żadnej potrzeby zmian ścieżek nawet jeśli przeniesiemy je w inne miejsce. Zagadnienia opisane w tej częscie ilustrują przykłady z katalogu href1. Oto jak przedstawia się struktura tego katalogu (duże litery, to nazwy podkatalogów, małe — nazwy plików) -HREF1 | +-index.htm +-plik.htm +-KATALOG1 | | | +-plik1_1.htm | +-plik1_2.htm | +-KATALOG2 | | | +-plik2_1.htm | +-KATALOG3 | +-plik3_1.htm c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        6.3 Połączenia

        49

        +-KATALOG4 | +-plik4_1.htm Proszę w szczególności zwrócić uwagę na to, jak napisane są odnośniki w plikach index.htm i plik4_1.htm. Dzięki temu, że wszędzie zostały użyte ścieżki bezwzględne można cały katalog HREF1 przenieść w inne miejsce i wszystkie odwołania będą wciąż aktualne. Często jako odsyłacz używany jest adres poczty elektronicznej. Autorzy wstawiają go na stronie, prosząc o uwagi czytelnika. Jest to dobry obyczaj, który daje czytelnikowi łatwy kontakt z autorem. Stosujemy tutaj na przykład następujące polecenie: Imię i nazwisko

        Aby połączyć naszą stronę z inną znajdującą się w sieci używamy identycznej składni, modyfikując odpowiednio „ścieżkę dostępu”, np.: Powrót do strony głównej Kolos-a

        6.3.1

        Połączenia do określonych miejsc w dokumencie

        Połączenia tworzone do tej pory prowadziły od pewnego mejsca w dokumencie wyjściowym do innej strony. Oprócz połączeń ogólnych, można tworzyć także połączenia do konkretnych miejsc na stronie. Aby stworzyć odnośnik do konkretnego miejsca należy stworzyć odnosnik oraz połączenie, np: ...

        Część 1

        ... inny kod ... Powrót to częci pierwszej ... W katalogu HREF2 znajdują się dwa pliki ilustrujące to zagadnienie. Ćwiczenie 6.2 Proszę napisać kilka dokumentów, umieścić je w różnych katalogach i zrobić połączenia miedzy nimi tak, aby dotyczyły zarówno całych dokumentów jak i ich fragmentów.

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        50

        HTML

        6.3.2

        Znaki specjalne w adresach URL

        Znaki specjalne w adresach URL to wszystko co nie jest literą, cyfrą ani żadnym z podanych znaków: $, #, –, , ., +. Jeśli jakiś adres zawiera znak, który na tej liście nie występuje to należy zapisać go stosując specjalny kod. Kod ten składa się ze znaku % i dwuznakowej liczby szesnastkowej. Jeśli na przykład pliki jakie mają być opublikowane w sieci znajdują sie w katalogu "Moje pliki". Wówczas zamiast http://myhost.com/Moje pliki/index.htm należy napisać http://myhost.com/Moje%20pliki/index.htm

        6.4

        Formatowanie tekstu

        Do zmian wyglądu zbioru znaków, znajdujących się w tekście, służą znaczniki określające style logiczne i style fizyczne. Znacznkik z grupy stylów logicznych określają w jaki sposób dany fragment tekstu ma zostać w dokumencie wykorzystany, a nie wyświetlony. Wskazują one jaka jest rola danego fragmentu tekstu, a nie jak ma być wyświetlony. W jaki sposób tekst zostanie ostatecznie wyświetlony zależy od przeglądarki. Nie ma żadnej gwarancji, że tekst objęty znacznikiem kursywy faktycznie będzie wyświetlony jako kursywa. Każdy z przedstawionych poniżej znaczników składa się ze znacznika początkowego oraz końcowego i ma wpływ na tekst znajdujący się pomiędzy nimi. hEMi — tekst objęty tym znacznikiem powinien być wyróżniony. hSTRONGi — znaki objęte tym znacznikiem powinny być wyróżnione jeszcze wyraźniej niż ma to miejsce w przypadku znacznika hEMi. hCODEi — tekst objęty taką parą znaczników powinien być wyświetlony czcionką o stałej szerokości. hSAMPi — oznacza tekst przykładowy, wyświetlany bardzo podobnie do poprzedniego. hKBDi — używany jest do wyróżnienia tekstu, który ma być wpisany z klawiatury, np.

        Wprowadz komende: shutdown -r "now"

        hVARi — używany jest do zaznaczenia wyrażenia będącego zmienną (na przykład przy omawianiu programu). hDFNi — znacznik definicji; jest wykorzystywany do oznaczenia słowa, które będzie lub właśnie zostało zdefiniowane. hCITEi — za pomocą tego znacznika oznaczamy krótkie cytaty. hBLOCKQUOTEi — dłuższe cytaty. Obok stylów logicznych, opisanych w poprzednim punkciem funkcjonuje także inna grupa znaczników, które pozwalają na ściśle określoną zmianę wyglądu danego fragmentu tekstu jak pogrubienie czy kursywa. Znaczniki te noszą nazwę znaczników fizycznych. hBi — pogrubienie. hIi — kursywa. c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        6.4 Formatowanie tekstu

        51

        hTTi — czcionka maszynowa (znaki o jednakowej szerokości). hBIGi — czcionka większa od reszty tekstu. hSMALLi — czcionka mniejsza od reszty tekstu. hSUBi — indeks dolny. hSUPi — indeks górny. hPREi — pozwala na wyświetlwnie preformatowanego tekstu. Oznacza to, że przeglądarka nie interpretuje tekstu zawartego między znacznikami hPREi. Tekst ten zostanie wyświetlony czcionką o stałej szerokości. Dla porównani można wpisać jako część kodu strony
         |||| |||||| /~~~~~~~~\ |mmm mmm| | 0 0 | | 00 | \ \____/ / \______/ 
        zobaczyć efekt, pozbyć się znaczników hPREi i ponownie zobaczyć. Do tworzenia poziomych linii używany jest znacznik hHRi (nie posiada on znacznika zamykającego)4 . Atrybuty znacznika to SIZE — określa grubość linii w pikselach. WIDTH — określa długość linii w poziomie w pikselach lub procentach. Procentowe określenie długości oznacza, że faktyczna długość będzie zmieniała się wraz ze zmianą rozmiarów okna. ALIGN — określa, czy linia ma być centrowana ALIGN=CENTER, wyświetlona od lewej krawędzi ALIGN=LEFT, czy prawej ALIGN=RIGHT. NOSHADE — rysowanie linii bez cienia nadającego jej trójwymiarowy wygląd. Do łamania tekstu w zadanych miejscach służy znacznik hBRi. Przeciwieństwem tego znacznika jest para hNOBRi . . . hNOBRi zabraniająca łamania tekstu. Znacznik hWBRi pełni rolę podpowidacza, gdzie może nastąpić ewentualne złamanie linii podczas formatowania tekstu przez przeglądarkę. Jeśli jednak cały tekst zmiści się w linii to zostanie on zignorowany. Znacznik hADDRESSi służy do wstawiania do strony WWW czegoś w rodzaju podpisu tzn. imię i nazwisko twórcy adres kontaktowy itp. Aby kontrolować położenie tekstu na stronie do każdego znacznika dodać można atrybut ALIGN wraz z jedną z wartości LEFR, CENTER, RIGHT. Jeśli jednak chcemy zmianę tę wprowadzić dla większej liczby znaczników to możemy odpowiedni fragment kodu objąć znacznikiem hDIVi i w nim wyspecyfikować odpowiednią wartość. Jeśli zdarzy się, że jeden ze naczników objętych znacznikiem hDIVi będzie maiał własne ustawienia, to one będą miały pierwszeństwo. Gdyby autorowi strony znudził się tekst, w którym czcionka ma ten sam kolor i wielkość, zawsze może się posłużyć dodatkowymi poleceniami, zmieniającymi obie cechy. W dokumentach HTML stosuje się nieco inną definicję wielkości czcionki niż przyjęta w edytorach 4 Podobna

        uwaga jak w przypadku znacznika hBRi; także ten będziemy pisać jako hHR /i.

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        52

        HTML

        tekstów. Podstawowa czcionka ma wielkość 3 jednostek (nie mylić z wielkością w punktach typograficznych) i jest zazwyczaj wyświetlana w przeglądarkach WWW jako czcionka 10-12punktowa. Przeglądarki pozwalają na ogół zdefiniować, jaka wartość punktowa odpowiada czcionce o wielkości 3. W dokumencie możemy stosować czcionkę o wielkości od 1 do 7. Im większa wartość, tym większa czcionka w przeglądarce. Wielkości czcionki w przeglądarce WWW nie należy utożsamiać z wielkością czcionki, za pomocą której redagujemy tekst w edytorze HTML. Czcionka w edytorze nie ma żadnego znaczenia dla postaci strony WWW. Możemy na przykład posługiwać się czcionką System, a i tak w przeglądarce pojawią się czcionki, które definiuje sam dokument lub przeglądarka. Polecenie, które określa wielkość czcionki, ma następującą postać: Tekst objęty definicją gdzie x = 1 . . . 7. Gdy w taki właśnie sposób definiujemy wielkość czcionki, nadajemy jej wartość absolutną. Możemy jednak także nadać wartość relatywną, czyli względną, podając wielkość zmiany. Skoro czcionka standardowa ma wielkość 3, możemy dodać do niej co najwyżej 4 jednostki lub odjąć co najwyżej 2. Gdyby czcionka podstawowa miała wielkość 1, moglibyśmy dodać 6, ale już niczego nie moglibyśmy odejmować. Tekst objęty definicją Tekst objęty definicją gdzie x = 1 . . . 6. Gdy jakiś fragment tekstu obejmiemy definicją hFONT SIZE=+2i h/FONTi, będzie on miał wielkość 5, gdyż dodajemy 2 jednostki do wielkości podstawowej. Gdy użyjemy polecenia hFONT SIZE=-1i h/FONTi, tekst będzie miał wielkość 2. W ten sposób możemy manipulować wysokością czcionki w tekście, uwypuklając jakieś fragmenty. Jest to wygodne, gdyż możemy zmienić wielkość czcionki wewnątrz akapitu, do czego nie nadaje się definicja tytułu. Gdy w dokumencie znajduje się para znaczników hBODYi i h/BODYi, możemy zdefiniować kolor tła dokumentu. Gdybyśmy tego nie uczynili, tło będzie miało taki kolor, jaki został domyślnie przyjęty w przeglądarce WWW (zazwyczaj szary). Możemy wstawić polecenie: przy czym „kolor” może być podany imiennie (np. red, green, black, white) lub za pomocą wartości heksadecymalnych (szesnastkowych), tak jak w przypadku koloru czcionki #FF0000, #008000, #000000, #FFFFFF. Jako bardziej uniwersalne zaleca się stosowanie wartości heksadecymalnych. W analogiczny sposób możemy zmieniać kolor czcionki. Posługujemy się tutaj poleceniem: Tekst objęty poleceniem Kolory możemy definiować w postaci tradycyjnej, a więc za pomocą wartości szesnastkowych (np. kolor biały ma wartość #FFFFFF, a czarny #000000), albo za pomocą ich nazw. Wszystkie popularne przeglądarki akceptują wartości heksadecymalne (w formacie RRGGBB, gdzie RR - składowa czerwona, GG - składowa zielona, BB - składowa niebieska), aczkolwiek ich wprowadzanie wymaga wspomagania w edytorze HTML. Niektóre z edytorów pozwalają wybrać barwę za pomocą suwaków i wstawiają odpowiedni kod do edytora. Można się również posłużyć specjalnym programem do wyznaczania tych wartości. Internet Explorer i Netscape Navigator interpretują również nazwy kolorów. Początkowo można było się posłużyć jedną z 16 barw, zaś ostatnio paleta rozszerzyła się do 256 kolorów. Najczęściej jednak przy definiowaniu koloru tekstu wystarczy 16 barw i można przyjąć, że posługiwanie się nazwami kolorów jest najwygodniejszą metodą ich definiowania, ponieważ przeglądarki Netscape i Microsoftu zdominowały rynek, więc znaczna część czytelników strony będzie widziała właściwe kolory. Oto lista szesnastu podstawowych barw: black, silver, gray, white, marron, red, purple, fuchsia, green, lime, olive, yellow, navy, blue, teal, aqua. Niektóre znaki są znakami sterującymi i dlatego do ich wyświetlenia należy użyć odpowiednich kodów: c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        6.5 Wstawianie obrazków

        53

        Kod < > & "  

        6.5

        Rezultat h i & ” spacja

        Wstawianie obrazków

        Na stronach WWW są stosowane dwa podstawowe formaty bitowych plików graficznych GIF i JPG (JPEG) - które są z założenia skompresowane (często nawet dziesięciokrotnie w stosunku do innych popularnych formatów), a więc zajmują znacznie mniej miejsca grafiki w innych formatach. Dzięki temu transmisja strony trwa znacznie krócej. Grafikę możemy wprowadzić za pomocą polecenia: Znacznik hIMGi zawiera atrybut ALIGN umożliwiający ułożenie obrazka powyżej, poniżej lub centralnie (domyślna wartość) względem otaczającego tekstu. • ALIGN=TOP — wyrównuje górną krawędź obrazu względem górnej krawędzi linii (może to być górna krawędź tekstu lub innego obrazu). • ALIGN=MIDDLE — wyrównuje obra w taki sposób, że jego środek leży dokładnie pośrodku linii. • ALIGN=BOTTOM — wyrównuje dolną krawędź obrazu względem dolnej krawędzi linii • ALIGN=TEXTTOP — wyrównuje górną krawędź obrazu względem górnej krawędzi najwyższej litery w linii. • ALIGN=ABSMIDDLE — wyrównuje obraz w taki sposób, że jego środek leży pośrodku największego elementu linii. • ALIGN=BASELINE — wyrównuje dolną krawędź obrazu względem dolnej krawędzi tekstu. • ALIGN=ABSBOTTOM — wyrównuje dolną krawędź obrazu względem dolnej krawędzi największego elementu w linii. Aby możliwe było otoczenie obrazka przez wiecej niż jedną linię należy posłużyć się atrybutem ALIGN z wartością LEFT lub RIGHT. Atrybut ten pozwala na ułożenie brazu przy lewym lub prawym marginesie powodując, że przestrzeń pomiędzy obrazem a przeciwległym marginesem może być wypełniona tekstem. Jeśli obok obrazka chcemy umieścić tylko kilka zdań a nowy wątek rozpocząć pod spodem to zwykle zastosowanie samego znacznika hBRi nie wystarczy. Należy wówczas zastosować ten znacznik z atrybutem CLEAR któremu przypisujemy wartość LEFT, RIGHT, ALL w zależności od tego, czy nowa lini ma rozpocząć się od miejsca gdzie lewy margines, prawy, lub oba są wolne. Przykładowy kod ilustrujący podane wiadomości zamieszczony jest w pliku obrazki.htm Atrybut ALT="[tekst]" powoduje pojawienie się napisu umieszczonego w cudzysłowie gdy nie jest możliwe wyświetlenie obrazka, lub gdy jest wyświetlony i wskażemy go myszką. Do otoczenia obrazka ramką służy atrybut BORDER. Atrybuty VSPACE i HSPACE określają odległość obrazu od otaczającego go tekstu. Do umieszczenia obrazka jako tła strony można wykorzystać

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        54

        HTML

        Rysunek 6.15: Znacznik IMG w połączeniu z atrybutem ALIGN równym odpowiednio TOP, MIDDLE, BOTTOM.

        Rysunek 6.16: Otoczenie obrazka przez tekst (ALIGN=LEFT, ALIGN=RIGHT).

        Rysunek 6.17: Łamanie tekstu otaczającego obrazek.

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        Rozdział 7

        Tabele Zanim rozpoczniemy tworzenie tabel musimy ustalić znaczenie kilku terminów. Spójrzmy zatem na poniższą tabelką zwracając uwagę co oznaczają poszczególne nazwy.

        Kolor (Także nagłówek) Smak (Także nagłówek)

        Owoce (To jest nagłówek) jabłka banany (Nagłówek) (Nagłówek) (Komórka) żółty (Dana)

        Warzywa (To jest nagłówek) ziemniaki marchew (Nagłówek) (Nagłówek)

        Do tworzenia tableli stosujemy znaczniki hTABLEi . . . h/TABLEi. Wiersze tworzymy za pomocą znacznika hTRi . . . h/TRi. Każdy wiersz z kolei ma swoje komórki, które definiujemy za pomocą znaczników hTHi . . . h/THi (w przypadku komórek nagłówka) oraz hTDi . . . h/TDi (dla komórek danych). Oto proste przykłady. Przykład 7.1 Proste tabelki.

        Nagłówek 1 Dana 1

        Nagłówek 2 Dana 2

        Nagłówek 1 Nagłówek 2
        Dana 1 Dana 2
        Nagłówek 1 Nagłówek 2

        Dana 1 Dana 2

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        56

        Tabele

        Nagłówek 1 Dana 1
        Nagłówek 2 Dana 2


        Do podpisywania tabeli służy znacznik hCAPTIONi . . . h/CAPTIONi. Powinien znajdować się on w obrębie znacznika hTABLEi, przed definicjami wierszy. Opcjonalny atrybut ALIGN przyjmujący wartość TOP, BOTTOM, LEFT, RIGHT pozwala na umieszczenie podpisu nad, pod, z lewej, z prawej strony ramki. Ćwiczenie 7.1 Proszę utworzyć poniższą tabelke.

        Wiersz 1 Wiersz 2 Wiersz 3

        Kolumna 1 Dana 1.1 Dana 2.1 Dana 3.1

        Kolumna 2 Dana 1.2 Dana 2.2 Dana 3.2

        Kolumna 3 Dana 1.3 Dana 2.3 Dana 3.3

        Operując na tebelach mamy kilka możliwości wyrównania danych zarówno w pionie jak i w poziomie. Wyrównania w poziomie dokonujemy za pomocą atrybutu ALIGN, przypisująć mu wartości LEFT, CENTER, RIGHT. Wyrównania w pionie dokonujemy za pomocą atrybutu VALIGN, przypisująć mu wartości TOP, BOTTOM, MIDDLE. Ćwiczenie 7.2 Proszę utworzyć poniższą tabelę.

        Góra

        Lewo x

        Środek x

        Prawo x

        Środek

        x

        x

        x

        Dół

        x

        x

        x

        We wszystkich dotychczasowych tabelach, na jedną komórkę przypadała jedna wartość, ewentualnie była to komórka pusta. Często spotkać można jednak komórki rozpięte na kilku wierszach i/lub komórkach. c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        57

        Przykład 7.2 Tabela, której komórki rozpięte są na kilku wierszach i/lub komórkach.

        Nagłówek II

        Nagłówek 1 Nagłówek 2

        Nagłówek I Nagłówek 1 Nagłówek 2 Dana 1 Dana 2 Dana 3 Dana 4

        Aby stworzyć komórkę rozpiętą na kilku wierszach i/lub komórkach, należy do znacznika hTHi lub hTDi dodać atrybut ROWSPAN i/lub COLSPAN oraz przypisać im odpowiednie wartości, które określą liczbę wierszy i/lub kolmm, na których komórka jest rozpięta. Przykład 7.3

        Nagłówek 1 Nagłówek 1.1 Nagłówek 1.2 Dana 1 Dana 2
        Nagłówek 1
        Nagłówek 1.1 Nagłówek 1.2
        Dana 1 Dana 2
        Nagłówek 2

        Nagłowek 2.1 Nagłowek 2.2

        Dana 1 Dana 2

        Nagłówek 2 Nagłówek 2.1 Dana 1
        Nagłówek 2.2 Dana 2


        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        58

        Tabele

        Ćwiczenie 7.3 Proszę utworzyć poniższą tabelke.

        N3

        N 3.1 N 3.2 N4

        Nagłówek 1 N 1.1 N 1.2 D1 D2 D4 D5 D7 D8

        Nagłówek 2 D3 D6 D9

        Atrybut WIDTH znacznika hTABLEi pozwala zdefiniowaniować szerokości tabeli na stronie. Wartością tego atrybutu jest szerokość okna w pikselach lub procentach względem aktualnej szerokości okna. Atrybut ten można również zastosować do poszczególnych komórek, określając w ten sposób szerokość kolumn. Atrybut BORDER umożliwia definiowanie szerokości obramowania tabeli. Do regulacji odstępu między komórkami służy atrybut CELLSPACING znacznika hTABLEi. Aby zmienić odstęp między zawartością komórki a jej obramowaniem należy użyć atrybutu CELLPADDING znacznika hTABLEi. Dodając do któregoś ze znaczników hTABLEi, hTHi, hTDi atrybut BGCOLOR można zmieniać kolory ramki. Do ziany koloru obramowania elementu tabeli służy atrybut BORDERCOLOR1

        1 Jest

        to rozszerzenie Internet Explorera i Netscape. c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        Rozdział 8

        Ramki Decydując się na stosowanie ramek, należy mieć świadomość, że nie wszystkie przeglądarki będą w stanie je poprawnie wyświetlić. Należy to mieć na uwadze, i jeśli nie jest to konieczne lepiej ich unikać. Czym jednak są ramki? Ramki są sposobem polazania wielu różnych informacji wyswietlanych jako odrębne strony, w jednym oknie. Zawartość każdej ramki może być zmieniana niezależnie od pozostałych. Do „zabawy” ramkami potrzebna jest znajomość atrybutu TARGET znacznika hAi. Zwykle otwarcie nowej strony powoduje pokazanie jej w bieżącym oknie. Można jednak spowodować, aby nowo otwarta strona wyświetlona była w nowym oknie. Rozważmy przykład Przykład 8.1 Załóżmy, że mamy dwa pliki o nazwach ”plik1.htm”, ”plik2.htm”i stwórzmy nowy o nazwie ”index.htm”. Odnośniki do innych stron w nowych oknach

        Odnośnik do pierwszej strony Odnośnik do drugiej strony



        Chcąc operować ramkami należy stowrzyć dokument, składnią przypominający zwykły dokument html-owy, w którym zawarte będą informacje definiujące układ poszczególnych ramek i ich zawartość. Tytuł strony ... definicje ramek ... c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        60

        Ramki

        Wraz ze znacznikiem hFRAMESETi używa się dwóch atrybutów COLS i ROWS. Atrybut COLS informuje przeglądarkę o liczbie pionowych ramek na jaką ma podzielić ekran. Poszczególne wartości oddzielamy przecinkami. Samą wartość możemy podać na trzy sposoby: jako wartość bezwzględną — szerokość w pikselach, względną — szerokość w procentach względem bierzącej szerokosci okna oraz za pomocą znaku ”*”przydzielającego tak zdefiniowanej ramcem maksymalną szerokość. Działane atrybutu ROWS jest analogiczne. Przykład 8.2

        Przy takim zapisie pierwsza ramka ma szerokość 50 pikseli, szerokość drugiej stanowi 50% szerokości całego okna, a trzecia ramka zajmie pozostały obszar. W tym przypadku otrzymamy dwie pionowe ramki o równej szerokości.

        Gdy ramki zostaną już zdefiniowane należy wskazać, które strony mają być wyświetlane w danej ramce. Służy do tego znacznik hFRAME SRC=„adres”i. Rozważmy przykład Przykład 8.3

        Odnośniki do innych stron w nowych oknach

        Atrybut FRAMEBORDER równy YES lub NO powoduje odpowiednio stosować lub nie obramowanie ramki. Atrybut BORDER COLOR pozwala na ustalenie koloru ramki. Ćwiczenie 8.1 Proszę stworzyć następujące ramki.

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        61

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        62

        Ramki

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        Rozdział 9

        Formularze Aby nasze skrypty uczynić prawdziwie interaktywnymi, należałoby wzbogacić je o możliwość pobierania danych od użytkownika. Właśnie temu celowi służą formularze. Zwykle proces twrzenia formularza przebiega w dwóch etapach. W pierwszym, przygotowuje się odpowiednie kody HTML tworzące właściwy formularz. W drugim zaś, tworzymy program, który będzie odpowiednio reagował na wpisywane dane. Poszczególne elementy formularza umieszczamy pomiędzy znacznikami hFORMi . . . h/FORMi. Formaularz


        ...
        Najczęściej wykorzystywanym znacznikiek definiującym elementy formularza jest hINPUTi. Posiada on dwa atrybuty: TYPE – określający jakiego typu jest to element (pole tekstowe, przycisk itp.) oraz NAME – identyfikujący jednoznacznie elementy formularza. Nadając atrybutowi TYPE wartość „text” tworzymy pole tekstowe. W tym przypadku można użyć również atrybutu SIZE i MAXLENGTH. Pierwszy z nich określa szerokość pola w znakach, drugi zaś określa maksynalną długość wprowadzanego tekstu. Atrybut VALUE służy do wprowadzenia domyślnej wartości pola. Nadając natomiast atrybutowi TYPE wartość „password” otrzymamy pole hasła, czyli zwykła pole tekstowe, gdzie zamiast znaków na ekranie widoczne są gwiazdki.
        Zwykle pole tekstowe
        Pole o innej dlugosci
        Pole o ograniczonej ilosci wprowadzanych zankow (5)
        Pole hasla
        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        64

        Formularze

        Nadając atrybutowi TYPE wartość „radio” tworzymy tak zwane przyciski radiowe. Przyciski radiowe wskazują listę pozycji, z których wybrana może być tylko jedna. Jeśli dany przycisk będzie wybrany, pozostałe nie zostaną zaznaczone. W przypadku grupy przycisków, ta sama nazwa odpowiada poszczególnym przyciskom grupy. Każdy z nich musi mieć jednak przyporządkowaną włąsną wartość atrybutu VALUE.
        Przyciski radiowe nie zagniezdzone
        Kobieta
        Mezczyzna
        Cos

        Przyciski radiowe zagniezdzone
        Zwierze
        Czlowiek
        Ryba
        Zaskroniec
        Roslina
        Doniczkowa
        Ogrodowa

        To samo, ale czytelniej...
        1. Zwierze
          • Czlowiek
          • Ryba
          • Zaskroniec
        2. Roslina
          • Doniczkowa
          • Ogrodowa
        Atrybut TYPE z przypisaną wartościa „checkbox” oznacza pole wyboru. Pole wyboru umożliwia wybranie z listy wielu różnych opcji; każde z pól może być zaznaczone lub nie. Domyślnie pole nie jest zaznaczone. Za pomocą atrybutu CHECKED, podobnie jak dla przycisków radiowych, można ustawić pewne pole jako zaznaczone.
        Przyciski wyboru
        Stary ramol


        Znaczniki hSELECTi . . . h/SELECTi służą do tworzenia rozwijalnej listy wyboru. Poszczególne pozycje oznaczane są znacznikami hOPTIONi (nie ma znacznika zamykającego). W celu wybrania konkretnej pozycji do znacznika hOPTIONi dodajemy atrybut SELECTED.
        Lista rozwijalna
        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        65

        Brunetki Blondynki Lyse Jeśli do znacznika hSELECTi dodamy atrybut SIZE, to otrzymamy przewijaną listę wyboru.
        Lista przewijana
        Warszawa Lodz Szczecin Krakow Czestochowa Gdy zajdzie potrzeba wprowadzania więcej niż jednej linii tekstu, należy skorzystać z obszaru tekstowego, które otrzymujemy stosując znaczniki hTEXTAREAi . . . h/TEXTAREAi. Posiada on trzy atrybuty: NAME – znaczenie jak wyżej, ROWS – wysokość obszaru tekstowego, COLS – szerokość obszaru tekstowego. Domyślny tekst, jaki ma być wyświetlony w obszarze tekstowym, wpisujemy pomiędzy znaczniki hTEXTAREAi i h/TEXTAREAi.
        Pole tekstowe
        Przypisując atrybutowi TYPE wartość „button”, otrzymamy przycisk. Wartość „reset” onacza specjalny przycisk, który przywraca domyślną postać formularza.
        Przyciski...



        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        66

        Formularze

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        Rozdział 10

        Przykłady buziek Buźka :) :( ;) ;( :& :* :> :D :I :O :[ >:) 8) :-) :-( :-@ ;-( :-< M:-) {} O:-) O-S-< {} {8-o @= :-)} :-)> :-# ]:o* C|:-= :-) :-q :-D

        Znaczenie jestem uśmiechnięty jestem smutny mrugam oczkiem płaczę pogniewałem się przesyłam całusy Hmm, niech pomyślę śmiechowe, zabawne to wcale nie jest śmieszne! wrzeszczę jestem zdołowany, przygnębiony jestem diabłem jestem Twoją żabką uśmiech smutek krzyczę płaczę rozpaczam pozdrawiam! bez komentarza anioł bardzo się spieszę bez komentarza Bill Gates bomba atomowa brodacz bródka buzia w ciup byk z kwiatkiem w pysku Charlie Chaplin chcę pozostać anonimowy Chińczyk (krasnoludek) chrapię clown dajcie kawy diabeł dotknę cię językiem nosa duży uśmiech, śmieję się (z Ciebie, do Ciebie)

        c

        2001 – 2004 by P. Fulmański, Uniwersytet Łódzki. Wersja z dnia: 18 listopada 2006

        68

        Przykłady buziek

        Buźka ,:-) {:/ -= :-& B-D B-D}}} |-) |-D :-: =|:-)= Q:-) :-O>-o O:-)