Protokoły Internetowe

Transkrypt

Protokoły Internetowe
Protokoły Internetowe
Podstawy Internetu
Historia Internetu
Definicja Internetu
WWW
Protokół HTTP
Trochę o HTML
Dynamiczne strony WWW
Protokoły pocztowe
Protokoły transmisji danych (ftp)
Internet
Internet (dosł. międzysieć; od ang. inter – między i ang. net
– sieć) to sieć komputerowa o światowym zasięgu łącząca
sieci lokalne, sieci rozległe i wszystkie komputery do nich
podłączone.
Standardy internetu regulowane przez agencję Internet
Engineering
Task
Force
(IETF)
i
publikowane
w
dokumentach RFC.
Definicja
słowa
internet
oznacza
globalny
system
informacyjny spełniający następujące warunki:
jest logicznie połączony w jednorodną sieć adresową opartą na
protokole IP (Internet Protocol),
jest w stanie zapewnić komunikację przy użyciu TCP/IP
(Transmission Control Protocol/Internet Protocol),
dostarcza lub wykorzystuje publicznie usługi wyższego
poziomu oparte na komunikacji i związanej z nią
infrastrukturze.
Internet historia
Początki Internetu - sieć ARPANET (projekt DARPA – ang.
Deffence Advanced Research Project Agency)
Początkowo 4 komputery
Protokół NCP (Network Control Protocol)
1974 – Opracowanie TCP i IP (problemy NCP z obsługą
dużego ruchu)
1980 – Włączenie do ARPANET sieci akademickich i
korporacji
1983
TCP/IP
zostaje
Standardem
Wojskowym,
popularyzacja określenia Internet
1989 - Internet przejmują uniwersytety i organizacje
naukowe, koniec projektu ARPANET (zakaz zastosowań
komercyjnych)
1991 – koniec z ograniczeniami dla Internetu (zastosowania
komercyjne), popularyzacja rozwiązania
WWW
World Wide Web (w skrócie określany jako WWW lub
Web) jest hipertekstowym, multimedialnym, sieciowym
(TCP/IP)
systemem
informacyjnym
opartym
na
publicznie dostępnych, otwartych standardach IETF, W3C i
ISO. Pierwotnym i w chwili obecnej nadal podstawowym
zadaniem WWW jest publikowanie informacji za pomocą
stron internetowych.
Zawartość strony internetowej jest hipertekstem, znaczy
to, że użytkownik oglądając stronę internetową może
podążać za hiperłączami, które przenoszą go do innych
stron internetowych w ramach tego samego serwera
internetowego lub innych dostępnych w ramach sieci.
World Wide Web został zapoczątkowany na początku lat
dziewięćdziesiątych w CERN jako system dostępu do
danych, informacji (w tym graficznych) w heterogenicznym
środowisku
dużej
organizacji
naukowej.
Tim Berners-Lee, nazywany twórcą WWW, zbudował
prototyp systemu, który później został przekształcony w to
czym WWW jest dzisiaj.
HTTP i URL
HTTP (ang. Hypertext Transfer Protocol) to bezstanowy (stan obecny nie zależy od stanu
poprzedniego) protokół warstwy aplikacji, służący transmisji stron WWW. Definicja HTTP
standard - RFC 2616. Służy do przesyłania żądania udostępnienia dokumentów WWW,
przekazywania informacji z formularzy. Zadaniem stron WWW jest publikowanie
informacji - natomiast protokół HTTP właśnie to umożliwia, natomiast HTML językiem
opisującym wygląd stron WWW.
URI (ang. Uniform Resource Identifier) – Uniwersalny identyikator zasobów. Służy do
identyfikacji zasobu. W strukturze hierarchicznej URI jest rodzicem dla URL URN
URL (ang. Uniform Resource Locator) - Uniwersalny lokalizator zasobów – określa
położenie zasobu. W świecie Internetu najczęściej przyjmuje się URI = URL gdyż
identyfikator jest jednocześnie lokalizatorem danego zasobu.
Schemat:
<schemat> : <autoryzacja> : <port> / <ścieżka> ? <zapytanie> # <fragment>
URN (ang. Unified Resource Name) – zunifikowana nazwa zasobu – określa zunifikowaną
nazwę, która może być składowana w różnych miejscach (dla jednego URN mamy kilka
URL). URN – imię i nazwisko osoby, URL – adres zamieszkania
Przykład:
urn:isbn:8371976682 - URN książki TCP/IP Biblia
http://helion.pl/ksiazki/tcpipb.htm - URL książki TCP/IP Biblia
URL: http://lmetet.polsl.pl/~mblachnik/doku.php?id=nauka:publikacje#rok_year_2006
Schemat
autoryzacja
(protokół) (adres hosta)
Ścierzka
zapytanie
Referencja do
fragmentu na stronie
Protokół HTTP
Fazy transakcji HTTP:
1. Połączenie – klient (przeglądarka) usiłuje
połączyć się z serwerem, który odpowiada
nawiązując połączenie (Połączenie TCP/IP)
2. Żądanie – klient wysyła do serwera żądanie
określając protokół komunikacyjny i zasób (plik
do pobrania) oraz parametry określające
obsługiwane typy danych
3. Odpowiedź – Po odebraniu przez serwer
żądania, serwer wysyła wymagany zasób lub
zwraca błąd
4. Zamknięcie – Zamknięcie połączenia z serwerem
przez jedną ze stron
Polecenia HTTP
Metody zapytań
GET – każe serwerowi pobrać dane znajdujące się pod danym URL
HEAD – To samo co GET ale zwracany jest tylko nagłówek
dokumentu
POST – przesyła dane do przetworzenia (np. z formularza HTML)
do określonego zasobu. Dane są zawarte w treści zapytania.
Efektem jest stworzenie nowego zasobu lub aktualizacja jednego z
obecnych zasobów
PUT – uploaduje reprezentacje określonego zasobu (przyjęcie
pliku od klienta do serwera)
DELETE – usuwa określony zasób
TRACE – zwraca echo odebranego zapytania, tak że klient może
widzieć co pośrednie serwery dodają lub zmieniają w zapytaniu
OPTIONS- wraza metodę http którą serwer HTTP wspiera dla
danego URL. Może być użyta do sprawdzenia funkcjonalności
serwera poprzez zapytanie „*” zamiast konkretnego zasobu
CONNECT – przekształca zapytanie do przeźroczystego tunelu
TCP/IP, zwykle w celu umożliwienia zaszyfrowanej komunikacji
(SSL, HTTPS) przez niezaszyfrowany HTTP - proxy (serwery
pośredniczące).
HTML - historia
HTML (ang. HyperText Markup Language, hipertekstowy język
znaczników)
Wzorowany na SGML (Standard Generalized Markup Language)
Język składający się ze znaczników (ang. tags) stosowany do tworzenia
stron WWW.
Pomysłodawca Tima Berners-Lee w 1989/1991 roku, pracownik CERN.
Pierwotna
budowa
kilkanaście
znaczników
umożliwiających
wyświetlanie tekstu wraz z odsyłaczami do innych tekstów. (idea:
przeskakując do innego tekstu za pomocą linku użytkownik nie musiał
wiedzieć gdzie fizycznie znajduje się interesujący go tekst. Była to tzw. (
zerowa wersja HTML)
Dalszy rozówj - potrzeba dołączania do tekstów tabel, grafiki i plików
multimedialnych, rezultat: kolejne wersje HTML-a.
Problemy z HTML – brak standaryzacji, nowe znaczniki definiowane
przez producentów przeglądarek
Rezultat brak kompatybilności wersji HTML-a zaimplementowanych w
przeglądarkach różnych producentów.
Rozwiązanie: Stworzenie W3C czyli World Wide Web Consortium, i
standaryzacja HTML-a.
Ostatnią wersją HTML-a jest wersja 4.01, która próbuje wydzielić
zarządzanie wyglądem strony do kaskadowych arkuszy stylów (CSS).
Wersje HTML
HTML 2.0 – Pierwsza ustalona wersja
HTML (większość stosowanych obecnie
znaczników, brak tabel i możliwości
justowania)
HTML 3.2 – Zaimplementowanie
możliwości tworzenia tabel, grafiki i
atrybutów justowania
HTML 4.0 – Wprowadzenie ramek
HTML 4.01 – Wprowadzenie arkuszy
stylów itp..
HTML cd.
Przejście
na HTML zgodny ze stamdardem
XML – XHTML
XHTML
(3 wersje + wersja przyszłościowa)
Kierunek rozwoju to:
XHTML
HTML’a
5.0/HTML 5.0 – to przyszłość
XHTML
XHTML 1.0, (2000) – rekomendacja W3C;
XHTML 1.1, (2001) rekomendacja W3C.
(2002) drugie wydanie XHTML 1.0.
XHTML 1.0 Strict – odmiana ścisła, zalecana przez W3C, przeznaczona
do tworzenia dokumentów z oddzieloną warstwą semantyki od
prezentacji; nie zawiera prawie żadnych elementów prezentacyjnych
XHTML 1.0 Transitional – odmiana przejściowa, obok elementów
odmiany ścisłej zawiera wiele elementów prezentacyjnych
XHTML 1.0 Frameset – zawiera wszystkie elementy wersji
przejściowej, a dodatkowo także elementy przeznaczone do
wyświetlania ramek.
Bazuje na XHTML 1.0 Strict,
Możliwość dostosowywania przez użycie modułów opisanych w
Modularyzacji XHTML,
XHTML 2.0 (szkic). XHTML 2.0 brak kompatybilności z XHTML 1.x,
- nowy język powstały z inspiracji XHTML-em, a nie aktualizacja
starego
XHTML 5 (szkic), aktualizacja XHTML-a 1.x, jest zdefiniowany
wraz z HTML-em 5
Żródło (wikipedia)
HTML - struktura
<html>. Element główny zawierający dwa kolejne elementy:
<head> (nagłówek dokumentu) i <body> (zasadnicza treść
dokumentu).
<head> zawiera tytuł strony oraz informacje dodatkowe
niewidoczne w dokumencie, takie jak autor, data, słowa kluczowe,
itp.
<body> zawiera wszystkie wyświetlane elementy: tekst, grafikę, itp.
Na początku dokumentu, poza elementem <html> powinna się
znaleźć informacja o zastosowanym typie dokumentu, wskazująca
użytą wersję HTML.
<!DOCTYPE html PUBLIC ... > - deklaracja typu
dokumentu
<html>
<head> ... </head> - nagłówek
<body> ... </body> - zawartość strony
</html>
HTML – struktura cd.
Elementy składają się z trzech części:
znacznika początkowego (w formie <znacznik>)
zawartości elementu (tekst i/lub inne elementy)
znacznika końcowego (w formie </znacznik>)
Elementy mogą mieć przypisane atrybuty precyzujące
znaczenie danego elementu.
Atrybuty wraz z ich wartościami wpisuje się wewnątrz
znacznika początkowego (<znacznik atrybut="wartość">).
Niektóre elementy nie muszą, a niektóre nie mogą posiadać
znacznika końcowego (np. element <br> służący do
rozpoczęcia nowego wiersza tekstu).
Przykład
<html lang="pl"> - definicja języka
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-16">
<title>tytuł strony w HTML-u</title>
</head>
<body>
<h1>Nagłówek strony pierwszego stopnia</h1>
<p>
Oto trochę tekstu<br>
i jeszcze trochę tekstu w następnym wierszu<br>
<a href="http://pl.wikipedia.org" target=_blank>
a to link do Wikipedii w nowym oknie</a>
</p>
</body>
</html>
Dynamiczne
tworzenie stron
Po stronie klienta
JavaScript,
Aplety,
DHTML
Flesh itp.
Po stronie serwera
CGI
Servlety
JSP
ASP
PHP
PERL
Dynamiczna treść po stronie klienta
CGI - Comon Gateway Interface
Żródło : www.wdvl.com/Authoring/Scripting/WebWare/Server/
Źródło: www.cs.colorado.edu/.../lectures/06/index.html
CGI vs. Servlets
Porównanie CGI i servletów
CGI
Servlets
Poczta
Protokół SMTP
Protokół POP3
Protokół IMAP
SMTP
Ang. Simple Mail Transfer Protocol
Odpowiedzialny za przesyłanie poczty z jednego systemu
pocztowego do drugiego (np. od nas – klientów na serwer SMTP)
Działa na porcie 25
Sposób działania
Odebrana przez serwer wiadomość trafia do bufora
Co określony czas kontrola stanu bufora.
Jeśli bufor pełny
Nawiązanie połączenia z serwerem docelowym. Jeśli gotów do współpracy
przesyła komunikat o gotowości. Przy braku gotowości dostajemy
specjalny komunikat. Gdy brak łączności z serwerem SMTP – ponowienie
nawiązania połączenia do upływu określonego czasu
Gdy serwer docelowy dostępny, serwer nadawca wysyła komunikat HELLO.
Odpowiedź – nazwa domeny (weryfikacja czy poprawne połączenie)
Rozpoczęcie transmisji – Komunikat MAIL FROM (od kogo wiadomość)
Określenie odbiorców – RCP TO: adresy odbiorców
Serwer nadawca wysyła komunikat DATA – informacja o wysłaniu
wiadomości
Wysyłanie trwa aż do pojawienia się komunikatu „.” – kończącego
transmisję
SMTP to dostawy dwupunktowe (end to end) przy braku adresata
wiadomość przesyłana do nadawcy.
SMTP - przykład
Źródło: http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
Wady SMTP
Brak weryfikacji adresata (duża łatwość
podmiany)
W wersji podstawowej brak transmisji
danych binarnych (standard ASCII)
Konieczność stosowania MIME
SMTP- Auth – próba dodania
uwierzytelniania
MIME
Ang Multipurpose Internet Mail Extension
Rozszerzenie możliwości przesyłania danych binarnych
Budowa MIME: nagłówek + treść
Nagłówek MIME:
Definicja wersji (MIME-version)
Definicja typów zawartości (content-type)
text
image
audio
video
application
Sposób kodowania wiadomości czyli kodowanie transportowe
(Content-transfer-encoding)
Dodatkowy opis zawartości wiadomości (Content-ID i ContentDescription)
UWAGA SMTP obsługuje ASCII które są 7 bitowe, więc konieczność
zamiany danych 8 bitowych na 7 bitowe tzw. Kodowanie transportowe
POP
Ang. Post Office Protocol
Port 110
RFC: RFC 1939, RFC 2449 ,RFC 1734,RFC 2222,RFC 3206
Obecna wersja POP3 (brak komatybilności z POP2)
Protokół transmisji wiadomości pocztowych ze skrzynki do klienta
Architektura Klient –Server
Wady:
połączenie tylko na okres pobrania poczty,
Możliwość podłączenia jednego użytkownika do jednej skrzynki
Listy muszą być pobrane w całości razem z załącznikami (komenda
top pozwala na pobranie tylko n pierwszych lini )
Odebrane wiadomości trafiają do jednej skrzynki
POP3 nie pozwala przeszukiwać kolejki listów do pobrania
W oryginale obsługiwał uwierzytelnianie zwykłym tekstem
(podatność na kradzież informacji)
Zalety:
Prosty do implementacji
Popularny
Sesja POP3
Obsługa POP
Nawiązanie połączenia przez klienta z
Serwerem POP
Serwer wysyła komunikat do klieta – wejście w
stan uwierzytalniania
Uwierzytelnienie klienta (polecenie USER i
PASS) i przejście w stan transakcji
Pobranie listy wiadomości (polecenie LIST)
Pobranie wiadomości (polecenie RETR)
Usunięcie odebranej wiadomości (polecenie
DELE)
Po odebraniu wiadomości przez klienta
kończenie sesji (polecenie QUIT)
Przykładowa sesja
IMAP
Internet Mail Access Protocol
RFC3501
Port 143 TCP
Stany sesji IMAP
Stan
Stan
Stan
Stan
nie uwierzytelniony
uwierzytelniony
wybrany
wylogowania
Koncepcja – udostępnienie dla programów
pocztowych możliwości zdalnego przeglądania
katalogów z pocztą
Możliwość zdalnej edycji poczty
Protokół FTP
File Transfer Protocol
RFC 959
Służy transmisji danych
Wykorzystuje dwa porty i dwa tryby pracy
Tryb aktywny
Klient inicjuje połączenie na port 21. Port
wykorzystywany do wymiany poleceń (Protocol
Interpreter)
Po nawiązaniu połączenia na porcie 21 serwer nawiązuje
połączenie zwrotne na porcie 20 (wymiana danych)
(Data Transfer Protocol)
Problem komunikacji przez firewall, NAT
Tryb pasywny
Klient inicjuje połączenie na porcie 21 (port do wymiany
poleceń)
Klient inicjuje połączenie na porcie >1024
FTP cd
Tryby transmisji:
• ASCII – Przesyłanie dokumentów tekstowych (kontrola zakończeń
plików UNIX – LF, Windows CR, LF)
• Binarny – zwykłe kopiowanie
Koniec na dzisiaj

Podobne dokumenty