Hipertekst w sieci: WWW World Wide Web (WWW) sieć połączonych ze sobą stron hipertekstowych hipertekst: pierwszy pomysł 1945 tekst zawierający odnośniki do innych tekstów wybranie odnośnika przeniesienie do odpowiedniego tekstu pierwotne wykorzystanie 1989 połączenie dokumentów dotyczących fizyki nuklearnej
Hipertekst w sieci: WWW Części składowe WWW: język opisu stron HTML (HyperText Markup Language) protokół komunikacyjny HTTP (HyperText Transfer Protocol) Programy obsługujące WWW: serwery WWW (Apache, Microsoft IIS) na porcie 80 klienci WWW, tzw. przeglądarki (IE, Netscape Communicator, Mozilla, Mozilla Firefox, Opera, lynx, links, )
Hipertekst w sieci: WWW Inne rodzaje plików poza stronami WWW: obsługa przez wtyczki (plug-ins) obsługa przez aplikacje wspierające MIME przypisanie typu pliku do wtyczki/aplikacji wspierającej Universal Resource Locator (URL) adres konkretnego zasobu, nie tylko serwera: prot://adres.dns.lub.ip(:port)/katalog/plik prot: http, ftp, mailto, gopher, file
WWW: Ciasteczka Problem bezpołączeniowości komunikacji przy użyciu HTTP: brak możliwości przechowywania preferencji użytkownika, danych o stanie zalogowany? Rozwiązanie ciasteczka (cookies) pliki wysyłane przez serwer, przechowywane przez przeglądarkę traktowane jako dane, a nie pliki wykonywalne teoretycznie nie powinny stanowić zagrożenia
domain domena serwera, z którego pochodzi ciasteczko path ścieżka do zasobu, którego dotyczy ciasteczko content interesujące serwer dane expires data wygaśnięcia (bez daty wygasa po wyłączeniu przeglądarki) secure nie wysyłaj, jeśli nie zostało nawiązane bezpieczne połączenie (np. transakcje bankowe, ) WWW: Ciasteczka Ciasteczka (cookies) struktura ciasteczka
WWW: Ciasteczka Ciasteczka (cookies) przy każdym nowym żądaniu przeglądarka sprawdza, czy nie ma ciasteczek dla danej domeny jeśli ma, wysyła ciasteczko razem z żądaniem serwer odbiera ciasteczko i generuje na jego podstawie odpowiednią witrynę
WWW: Ciasteczka Ciasteczka (cookies) problemy: ciasteczka mogą zawierać wirusy potencjalne błędy przeglądarki mogą spowodować uaktywnienie tych wirusów ciasteczka mogą służyć do nielegalnego zbierania informacji o użytkownikach sieci
WWW: Ciasteczka Ciasteczka (cookies) problemy: ciasteczka mogą zawierać wirusy potencjalne błędy przeglądarki mogą spowodować uaktywnienie tych wirusów ciasteczka mogą służyć do nielegalnego zbierania informacji o użytkownikach sieci
HTML Statyczny Opis Strony Strona HTML znaczniki (tags) mogą być zagnieżdżone tekst specjalne: tabele formularze
Dynamiczne Strony WWW Generowanie HTML po stronie serwera: CGI (Common Gateway Interface) PHP (PHP: Hypertext Preprocessor) ASP (Active Server Pages) JSP (Java Server Pages) Generowanie dynamicznej zawartości po stronie klienta: JavaScript
Dynamiczne Strony WWW CGI: użytkownik przesyła dane przy pomocy formularza serwer przekazuje dane do programu CGI program CGI zwraca gotową stronę WWW lub jej część serwer przesyła stronę do użytkownika Program CGI musi być wykonywalny na serwerze programy nie są przenośne UNIX: najczęściej Perl, albo wykonywalne pliki binarne
Dynamiczne Strony WWW PHP, JSP, ASP: użytkownik przesyła dane przy pomocy formularza serwer dynamicznie generuje stronę WWW ze statycznej zawartości i z interpretowanych skryptów (wstawek) serwer przesyła stronę do użytkownika Skrypty są przenośne i powinny na każdej platformie generować tę samą stronę
Dynamiczne Strony WWW JavaScript: język skryptowy zbliżony w składni do Javy interpretowany i wykonywany w przeglądarce widoczny w źródle strony Zastosowania: proste aplikacje w oparciu o HTML (np. kalkulator adresów IP) efekty specjalne (menu, specjalne kursory, animowany tekst, ) strony interaktywne Aplety Java interpretowane przez JVM (maszynę wirtualną Javy) ustandaryzowane zachowanie (w przeciwieństwie do JS)
Dynamiczne Strony WWW Kontrolki ActiveX: kompilowane mini-aplikacje szybki czas wykonania nieprzenośne
Dynamiczne Strony WWW CGI PHP/JSP/ ASP JavaScript/ aplety Java Active X Język programowania dowolny określony określony dowolny Program wykonywalny kompilowany interpretowany interpretowany kompilowany Kod wstawiony między statyczny HTML nie tak tak nie Kod przenośny nie tak tak nie Dobry do aplikacji wymagających obliczeń tak nie nie tak Miejsce wykonania serwer serwer przeglądarka przeglądarka Dobra integracja z serwerem WWW nie tak n/d n/d
HTTP HyperText Transfer Protocol (protokół transferu hipertekstu) Komendy: GET nazwa_pliku.htm HTTP/1.1 pobierz stronę HEAD pobierz sam nagłówek PUT, POST, DELETE modyfikuj witrynę (rzadko używane) TRACE prześlij żądanie z powrotem (ustalanie źródła błędu) CONNECT nie używane OPTIONS pytanie o parametry serwera i pliku
HTTP Odpowiedzi: Linia stanu (status line) kod + komentarz: 1xx informacja (100 przyjmuję żądanie) 2xx operacja zakończona sukcesem (204 brak zawartości) 3xx przekierowanie (301 strona przesunięta, 304 strona w pamięci podręcznej wciąż aktualna) 4xx błąd po stronie klienta 5xx błąd po stronie serwera (500 wewnętrzny błąd serwera, 503 spróbuj później) Nagłówki Treść strony
HTTP Odpowiedzi: Linia stanu (status line) kod + komentarz: Nagłówki Treść strony
HTTP Odpowiedzi: Linia stanu (status line) kod + komentarz: Nagłówki Treść strony: wydane komendy: telnet www.ietef.org 80 GET /rfc.html HTTP/1.1
HTTP Proxy Przechowywanie stron w pamięci podręcznej: na komputerze klienta na serwerze proxy klient wysyła żądanie do serwera proxy odpowiedź z pamięci podręcznej lub przekazanie żądania do serwera docelowego Jak długo przechowywać dane w cache? decyzja na podstawie nagłówka Last-Modified decyzja na podstawie komunikacji z serwerem docelowym (nagłówek If-Modified-Since ) połączenie obu metod
Bezprzewodowe WWW: WAP Wireless Access Protocol (protokół dostępu bezprzewodowego) używany w telefonach komórkowych, palmtopach (PDA), notebookach WAP 1.0: oparty na WML (modyfikacja XML) własne protokoły WAP 2.0: oparty na XHTML (modyfikacja HTML) używa protokołów Internetu lub protokołów WAP 1.0 dynamiczna zmiana zawartości (np. ceny akcji) integracja z funkcjami telefonu multimedia wtyczki w przeglądarce
Bezprzewodowe WWW: WAP Alternatywa: 802.11: Zalety: znacznie większa szybkość standardowe strony nie wymagają modyfikacji Wady: nie wszystkie urządzenia wspierają 802.11 konieczna obecność stacji bazowej
Komunikatory Internetowe: GG Liczne dostępne komunikatory: ICQ, GG, AOL Instant Messaging, MS Messenger Gadu-Gadu polski komunikator połączenie HTTP (rejestracja, zmiana hasła, odnajdywanie serwera) i własnego protokołu komunkacyjnego
Komunikatory Internetowe: GG Nawiązanie połączenia z serwerem: przez HTTP z serwerem appmsg.gadugadu.pl serwer odpowiada adresem IP właściwego serwera GG nawiązanie komunikacji z właściwym serwerem: serwer przesyła pakiet WELCOME zawierający ziarno do utworzenia zaszyfrowanego hasła użytkownik odsyła serwerowi UIN (numer użytkownika), zaszyfrowane hasło, i podstawowe parametry (wersja, status, opis, )
Komunikatory Internetowe: GG Każdy pakiet: typ pakietu długość pakietu treść
Komunikatory Internetowe: GG Typy pakietów odpowiedzi serwera: nawiązanie połączenia potwierdzenie połączenia, lub błąd przesłanie swojej listy kontaktów dane kontaktów (status, opis, adres IP, port, ) eksport/import listy kontaktów na/z serwera wysłanie wiadomość potwierdzenie: numer odbiorcy numer sekwencyjny typ wiadomości treść wiadomości odbiór wiadomości: j. w. + czas nadania kontakt z katalogiem publicznym (wyszukiwanie znajomych)
Komunikatory Internetowe: MSN/Windows Messenger Trzy typy serwerów: Dispatch Server (odpowiedzialny za odsyłanie do NS) Notification Server (logowanie, nawiązywanie sesji, powiadamianie o stanie, komunikacja z SS) Switchboard Server (przesyłanie konkretnych wiadomości)
Komunikatory Internetowe: MSN/Windows Messenger Komunikaty 7bit ASCII ACK Switchboard Client Sends a positive message delivery acknowledgement. ADD Client Notifcation Notification Client Adds to the user's FL, AL, and BL. Notifies the client of asynchronous additions to a user's list. ANS Client Switchboard Accepts a request for a switchboard server session. BLP Client Notifcation Notification Client Changes the user's message privacy setting, which determines how to treat messages from users not already in the BL or AL. BYE Switchboard Client Notifies a client that a user is no longer in the session. CAL Client Switchboard Initiates a switchboard server session. CHG Client Notifcation Notification Client Sends a client state change to the server. Echos the success of the client's state change request. FLN Notification Client Notifies the client when users in the FL go off-line GTC Client Notifcation Notification Client Changes the user's prompt setting, which determines how the client reacts to certain RL changes. INF Client Client Dispatch Dispatch Notification Client Requests set of support authentication protocol from the server. Provides the set of supported authentication protocols to the client. Notification Client ILN Notification Client Notifies the client of a the initial online state of a user in the FL, while either logging on or adding a user to the FL. IRO Switchboard Client Provides the initial roster information for new users joining the session. JOI Switchboard Client Notifies a client that a user is now in the session.
Komunikatory Internetowe: MSN/Windows Messenger Komunikaty 7bit ASCII LST Client Notification Retrieves the server's version of the user's FL, RL, AL, or BL. Notifcation Client MSG Client Switchboard Sends a message to the members of the current session. MSG Notification Switchboard Client Client Delivers a message from another client or from a server-side component. NAK Switchboard Client Sends a negative message delivery acknowledgement. NLN Notification Client Notifies the client when users in the FL go on-line or when their on-line state changes. OUT All All Ends a client-server Session. REM Client Notifcation Notification Client Removes from the user's FL, AL, and BL. Notifies the client of asynchronous removals from a user's list. RNG Notification Client Notifies the client of a request by another client to establish a session via a switchboard server. SYN Client Notification Initiates client-server property synchronization. Notifcation Client USR All All Authenticates client with server, possibly in mulitiple passes. VER Client Dispatch Negotiates common protocol dialect between client and Server. Dispatch Client XFR Client Notification Requests a Switchboard server for use in establishing a session. Notifcation Client XFR Dispatch Client Notification Client Notification of login-ns to the client or notification to move to a different NS.
Komunikatory Internetowe: IMPP Instant Messaging/Presence Protocol RFC 2779 (IETF) Przyszłość komunikacji wspólny standard
Transport plików: FTP File Transfer Protocol (Protokół transferu plików) Serwer TCP/IP Klient Interfejs użytkownika Interpreter poleceń 21 komendy odpowiedzi ASCII xxxx Interpreter poleceń Proces transferu danych zzzz dane ASCII lub binarny yyyy Proces transferu danych System plików System plików
Transport plików: FTP Tryb aktywny Tryb pasywny
Transport plików: FTP Tryb aktywny (przykład) Tryb pasywny (przykład) testbox1:$ ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PORT 192,168,150,80,14,178 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for file list. drwx------ 3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye. testbox1:$ ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> passive Passive mode on. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PASV 227 Entering Passive Mode (192,168,150,90,195,149). ---> LIST 150 Opening ASCII mode data connection for file list drwx------ 3 slacker users 104 Jul 27 01:45 public_htm 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye.
Inne protokoły warstwy aplikacji NNTP Network News Transport Protocol Usenet tzw. grupy dyskusyjne służą do wymiany informacji oraz plików (grupy typu xxx.binaries.yyy.zzz) nieco zbliżone do systemu poczty elektronicznej, ale wszelkie wiadomości są widoczne przez wszystkich użytkowników Usenetu archiwa grup dyskusyjnych świetne źródło informacji na różne tematy (m.in. Google Groups, Deja News)
Inne protokoły warstwy aplikacji Protokoły P2P peer-to-peer (Kademlia, Overnet, KaZaa, DC ) Zdecentralizowana wymiana plików decentralizacja przechowywanych plików często również decentralizacja informacji o tym, gdzie można znaleźć pliki (Overnet, Kademlia, KaZaa)