Kontakt |  Tworzenie stron... 

Historia internetu, ważniejsze technologie

Krótki rys historyczny

Za twórcę koncepcji World Wide Web (WWW) uznaje się Tima Bernersa-Lee, związanego ze szwajcarskim CERN (Organisation Européenne pour la Recherche Nucléaire), który od 1989 roku pracował nad wykorzystaniem koncepcji hipertekstu w celu udostępniania danych badawczych. Berners-Lee opracował pierwszą składnię języka HTML, zaimplementował pierwszy serwer WWW, nazwany httpd, a także pierwszą przeglądarkę WWW, nazwaną WorldWideWeb, która jednocześnie pełniła rolę edytora HTML.
Pierwszy serwer WWW został uruchomiony 6 sierpnia 1991 roku pod adresem http://info.cern.ch/. W roku 1994 Tim Berners-Lee założył przy MIT (Massachusetts Institute of Technology) organizację World Wide Web Consortium (W3C), która do dziś zajmuje się koordynacją rozwoju technologii WWW.
Tim Berners-Lee Komputer NEXT
Tim Berners-Lee twórca koncepcji  WWW - WorldWideWeb
Komputer NeXT, na którym pracował
pierwszy serwer WWW - dziś znajduje się on w muzeum CERN w Meyrin.

Fotografie pochodzą z serisu Wikipedia (www.wikipedia.org).

Architektura WWW


Architektura World Wide Web (WWW) jest przykładem architektury rozproszonej składającej się z dwóch funkcjonalnie rozdzielonych warstw: warstwy klienta HTTP i warstwy serwera HTTP. Komunikacja pomiędzy tymi warstwami jest realizowana za pośrednictwem protokołu HTTP. Serwer HTTP jest programem nieprzerwanie pracującym, obsługującym repozytorium dokumentów (np. HTML), które udostępnia sieciowym klientom HTTP. Klient HTTP jest programem użytkowym, który odpowiada za wysyłanie żądań pobrania dokumentów, wizualizację pobieranych dokumentów oraz obsługę interakcji z użytkownikiem końcowym.
W środowisku WWW żądania użytkowników końcowych są obsługiwane w następujący sposób:

1. Użytkownik końcowy przekazuje klientowi HTTP adres URL żądanego dokumentu, np. http://www.poznan.pl/studia/inf.html. Klient HTTP wyodrębnia z adresu URL adres DNS (lub IP) komputera, na którym pracuje oprogramowanie serwera HTTP, np. www.poznan.pl.
2. Klient HTTP otwiera połączenie TCP do serwera HTTP i wysyła komunikat żądania HTTP, zawierający nazwę i ścieżkę prowadzącą do żądanego dokumentu, np. /studia/inf.html.
3. Serwer HTTP pobiera żądany dokument z systemu plików i wysyła komunikat odpowiedzi HTTP, do którego dołącza ten dokument, najczęściej zapisany w formacie HTML.
4. Klient HTTP wizualizuje dokument w formie graficznej i zamyka połączenie sieciowe z serwerem HTTP.

    Kluczowym elementem architektury WWW jest klient HTTP, nazywany również przeglądarką WWW (Web Browser). Klient HTTP jest programem użytkowym, który odpowiada m.in. za inicjowanie połączeń HTTP z serwerem HTTP, wysyłanie żądań pobrania dokumentów, odbieranie dokumentów od serwera HTTP oraz za ich wizualizację. Przykładami programów klientów HTTP są: Microsoft Internet Explorer (www.microsoft.com), Mozilla (www.mozilla.com), Mozilla Firefox (www.mozilla.com), Netscape (www.netscape.com), Opera (www.opera.com). Warto podkreślić, że funkcjonalność tych programów daleko wykracza poza wymaganą funkcjonalność klienta HTTP,
zwykle mieszczą one w sobie także funkcje klienta FTP, klienta Gopher, itp.
    Klient HTTP obsługuje również interakcję użytkownika końcowego z graficznym interfejsem użytkownika zawartym w pobranym dokumencie. Interfejs ten może zawierać np. takie elementy interakcyjne jak pola tekstowe, pola wyboru, przyciski, łącza, skrypty. W celu skrócenia czasu odpowiedzi większość klientów HTTP buforuje pobierane dokumenty, zapisując je w lokalnym systemie plików, a następnie wykorzystuje do obsługi identycznych, powtórzonych żądań w przyszłości. Buforowanie dokumentów wymaga stosowania zaawansowanych mechanizmów kontroli spójności w celu uniknięcia ryzyka przedstawiania użytkownikowi nieaktualnej już wersji dokumentu. W celu podniesienia bezpieczeństwa komunikacji, programy klientów HTTP umożliwiają szyfrowanie połączeń sieciowych z serwerami HTTP.

Zadania serwera HTTP

Zadania serwera HTTP:
  Drugim istotnym elementem architektury WWW jest serwer HTTP, nazywany również serwerem WWW. Serwer HTTP jest programem systemowym, nieprzerwanie pracującym na wyznaczonym komputerze, prowadzącym nasłuch sieciowy w celu odbioru żądań od klientów HTTP. Po otrzymaniu żądania HTTP, serwer HTTP pobiera z lokalnego systemu plików żądany dokument i wysyła go do klienta HTTP. Przykładami programów serwerów HTTP są: Apache (www.apache.org), Jigsaw (www.w3.org), Microsoft Internet Information Services (www.microsoft.com), Sun Java System Web Server (www.sun.com). Coraz częściej serwery HTTP stanowią standardowy składnik systemu operacyjnego.
    Do dodatkowych zadań serwerów HTTP należą zwykle: rejestracja obsługiwanych żądań polegająca na ich zapisie w plikach dziennika (log files), uwierzytelnianie i kontrola dostępu użytkowników końcowych za pomocą nazwy i hasła, kryptograficzne szyfrowanie komunikacji sieciowej z klientem HTTP, automatyczny wybór odpowiedniej wersji językowej dokumentu, itp.

Komunikacja pomiędzy klientami HTTP a serwerem HTTP jest realizowana za pomocą protokołu HTTP (Hypertext Transfer Protocol). HTTP jest prostym protokołem opartym na TCP, implementującym model żądanie-odpowiedź, korzystającym ze znakowych komend i komunikatów. Umożliwia przesyłanie zarówno dokumentów tekstowych, jak i binarnych. Połączenie HTTP pomiędzy klientem HTTP a serwerem HTTP ma charakter krótkotrwały - jest zamykane po zakończeniu pobierania dokumentu. Protokół ma charakter bezstanowy i bezsesyjny.

Język HTML

HTML (Hypertext Markup Language) to najważniejszy język definicji dokumentów dla klientów HTTP. Przyjmuje się, że został opracowany przez Tima Bernersa-Lee w roku 1990, częściowo w oparciu o język SGMLguid, który z kolei stanowił lokalną odmianę języka SGML stosowaną w CERN.
Prawdopodobnie najstarszy dokument HTML dostępny w Internecie został utworzony 13 listopada 1990 roku: http://www.w3.org/History/19921103-hypertext/hypertext/WWW/Link.html (http://infomesh.net/html/history/early/).
HTML umożliwia zapis treści dokumentu i równocześnie opis jego układu graficznego. Dokument HTML to plik tekstowy, z ewentualnymi załącznikami, w którym znajduje się tekstowa treść przeplatana z rozkazami formatującymi, zapisanymi w formie tzw. znaczników (tags). 

Cascading Style Sheets (CSS)

Kaskadowe arkusze stylów (ang. Cascading Style Sheets, CSS) to mechanizm (a jednocześnie język) służący do definiowania stylu prezentacji dokumentów w Internecie. CSS może być wykorzystany do formatowania dokumentów HTML, XML i XHTML. Od wersji 4.0 specyfikacji języka HTML, CSS jest preferowanym sposobem opisu formy prezentacji dokumentów HTML, a wykorzystywanie do tego celu znaczników HTML i ich atrybutów jest zdecydowanie niezalecane. Język HTML powinien być wykorzystany do zdefiniowania struktury dokumentu, a formatowanie poszczególnych elementów powinno być określone za pomocą CSS.

JavaScript

Język JavaScript jest przykładem języka skryptowego. JavaScript jest językiem zorientowanym obiektowo i umożliwia rozszerzanie funkcjonalności języka przez wykorzystanie zewnętrznych bibliotek. JavaScript nie jest samodzielnym językiem programowania, co oznacza, że nie można za pomocą JavaScript pisać aplikacji użytkownika, programy napisane w JavaScript wykonują się w ramach (są zagnieżdżone) innych aplikacji. Programy JavaScript nie wymagają wcześniejszej kompilacji, są interpretowane i wykonywane w trybie runtime. Poszczególne dialekty JavaScript są do siebie bardzo podobne, co umożliwia stosunkowo łatwe przenoszenie aplikacji napisanych w JavaScript między różnymi środowiskami. Istotną zaletą języka JavaScript jest fakt, że jest to język całkowicie darmowy i jego wykorzystanie nie niesie ze sobą żadnych obciążeń finansowych.

Najczęściej język JavaScript jest wykorzystywany do pisania aplikacji wykonujących się w ramach przeglądarki internetowej. JavaScript może być wykorzystany zarówno do tworzenia tzw. bogatych aplikacji internetowych (ang. Rich Internet Applications), jak również jako narzędzie pomocnicze w tradycyjnych aplikacjach internetowych. W drugim przypadku JavaScript najczęściej służy do zapewniania interakcyjności stronom HTML (dzięki zdolności do reagowania na zdarzenia generowane przez użytkownika) oraz do walidacji poprawności danych wprowadzanych przez formularz HTML. Skrypty napisane w nim mogą być umieszczane na stronach WWW i są obsługiwane u klienta - na komupterze, na którym strona jest oglądana. Język ten jest bardzo ciekawym rozwiązaniem dla osób, które chcą wzbogacić swoją stronę internetową w atrakcyjne elementy, takie jak animacje, komunikaty, których zachowanie może być zależne od postępowania użytkownika.

Dla osób opracowujących strony WWW ewolucja HTML miała zalety, lecz także i wady. Na początku istnienia Sieci język HTML był stosunkowo prosty, tak więc łątwo i szybko można było się nauczyć wszystkiego co potrzebne do konstruowania stron. Wraz z rozwojem Sieci rosły jednak aspiracje osób tworzących strony,  a chęć uzyskania większej kontroli nad ich wyglądem wymuszała zmiany w HTML i wzrost jego złożoności. Ponieważ Sieć jest dynamicznym środkiem przekazu informacji,  projektanci życzyli sobie również, aby ich strony umożliwiały użytkownikom interaktywną komunikację. Wówczas szybko stało się jasne, że HTML nie sprosta temu zadaniu. Netscape opracował JavaScript, który tworząc nową filozofię sterowania przeglądarką umożliwiał tworzenie pełnych rozmachu, interaktywnych stron WWW. 

PHP


PHP (ang. Hypertext Preprocessor) jest językiem skryptowym, służący przede wszystkim do tworzenia dynamicznych stron WWW. Wykonywanym po stronie serwera, obecnie jest to jeden z popularniejszych języków.  PHP na tle innych technologii jest bardzo łatwy do opanowania w stopniu umożliwiającym tworzenie rzeczywistych aplikacji. Stąd m.in. jego duża popularność. Składnia PHP przypomina składnię języka C z elementami Perla.  PHP jest szybki i oszczędza zasoby serwera. Jest szczególnie popularny w systemie Linux, w połączeniu z serwerem HTTP Apache, ale dostępny jest dla wielu systemów operacyjnych (w tym MS Windows) i serwerów HTTP. PHP jest rozwijany na zasadach Open Source. Jest darmowy, rozszerzalny, pojawiające się w nim błędy są szybko wykrywane i poprawiane. Wsparcie, rozwiązania typowych problemów i przykłady kodu można bez problemu znaleźć w Internecie. 

Programy napisane w PHP są wykonywane przez serwer WWW, mianowicie serwer WWW po otrzymaniu żądania dokumentu i stwierdzeniu, że jest to skrypt PHP, "przepuszcza" go przez interpreter PHP. Interpreter powykonaniu skryptu przygotowuje stosowny kod HTML, który jest przesyłany przez serwer WWW do klienta. 

Technologia XML

XML (eXtensible Markup Language - rozszerzalny język znaczników) został zdefiniowany przez organizację Word Wide Web Consortium (W3C) .
Zgodnie z definicją, język XML składa się jedynie z podstawowych szkieletowych wyrażeń. Gdy tworzymy dokument w XML, nie korzystamy z określonego zestawu znaczników. Zamiast tego tworzymy własne znaczniki, nadając im dowolne nazwy. Dlatego XML określany jest jako rozszerzalny język programowania. W tym tkwi siła i uniwersalność XML, bo jest to format pozwalający na łatwe przechowywanie dowolnych danych. Dzięki oddzieleniu treści od formy możemy skupić się na samych danych. Zwykłe programy mogą dzięki wspólnemu formatowi XML łatwiej wymieniać dane, a informacje publikowane np. w sieci mogą być łatwiej przetwarzane. Język ten pozwala pokonać barierę niekompatybilności różnych systemów komputerowych umożliwiając użytkownikom szybsze i łatwiejsze wyszukiwanie oraz wymianę danych rożnych typów.

Dane zapisywane są w języku XML, natomiast sposób prezentacji określany jest za pomocą języka XSL. XSL pozwala przekształcać dane XML na podstawie szablonu. Korzystając z tego narzędzia można dane przegrupowywać i wybierać. Można je także przygotować do wizualnego przeglądania. Arkusze stylów XSL mogą być osobnymi plikami, które za pomocą odpowiedniej deklaracji w prologu przypisuje się dokumentom z danymi. Oczywiście jednego arkusza stylów można używać do przekształceń wielu plików z danymi tworzącymi tę samą strukturę.