You are on page 1of 24

Programarea reţelelor de

calculatoare

Ioan Jurca
Bibliografie:
1. Ioan Jurca: Programarea reţelelor de calculatoare, Ed. de Vest, 2001
2. Bill Burke, R. Monson-Haefel: Enterprise Java Beans 3.0 (5tht Edition),
O'Reilly, 2006
3. http://download.oracle.com/javaee/6/tutorial/doc/docinfo.html conține capitole
care acoperă partea de programare distribuită în Java (EJB și Web Services)
4. http://courses.cs.vt.edu/~cs4254/ - - curs la Virginia Tech, pentru
programarea cu sockets (2006)
5. http://beej.us/guide/bgnet - programare cu sockets în UNIX
6. http://courses.coreservlets.com/Course-Materials/java-ee.html - set de
cursuri (PPT) online inclusiv EJB si Web Services
7. http://docs.oracle.com/javase/tutorial/rmi/ - tutorial SUN (Oracle) pentru Java
RMI
8. http://www.cs.cf.ac.uk/Dave/C - curs extensiv de programare in C sub UNIX
(sockets, RPC)

Examen:
Scris, 2 lucrări de control, cu parte de teorie şi probleme
Cuprins
Reţele de calculatoare. Protocoale
Programarea cu sockets în UNIX
Apelarea procedurilor la distanţă
Introducere/extragere în Java
Programarea cu sockets în Java
Apelarea metodelor la distanţă
CORBA – Aplicaţii distribuite eterogene
EJB – Aplicaţii bazate pe componente
SOA – Servicii Web
1. Reţele de calculatoare. Protocoale
Componentele reţelelor de calculatoare
Modele de referinţă
Modelul OSI
Modelul TCP/IP
Probleme generale de proiectare
Modelul client-server
Familia de protocoale TCP/IP
Prezentare generală
Nivelul reţea
Nivelul transport
Nivelul aplicaţie
1.1. Componentele reţelelor de
calculatoare
 Reţea de calculatoare: sistem de comunicaţii care conectează mai multe
noduri (hosts)
 Nod: calculator, telefon mobil, imprimantă, frigider
 Noduri mono-punct (single-home) şi multi-punct ( multi-home)
 Reţea locală (LAN- Local Area Network): noduri apropiate geografic, viteze
mari de transfer (100 Mbps, 1 Gbps, 10 Gbps)
 Reţea metropolitană (MAN – Metropolitan Area Network): noduri într-un oraş
sau aglomeraţie urbană, viteze asemănătoare cu LAN
 Reţea răspândită geografic (WAN – Wide Area Network): noduri situate la
mari distanţe, viteze mai mici
 Medii de transmitere: cablu metalic, cablu de fibră optică, unde radio (reţele
fără fir - wireless)
 Prin conectarea unor reţele individuale => inter-reţele. Toate reţelele
conectate prin familia de protocoale TCP/IP: Internet
1.2. Modele de referinţă
1.2.1. Modelul OSI

 Protocol: set de reguli şi convenţii stabilite între participanţii la o activitate comună


 Protocoalele pentru reţelele de calculatoare sunt organizate pe niveluri sau straturi
(layers)
 Fiecare nivel defineşte servicii şi eventual protocoale pentru servicii => modele de
referinţă, cele mai cunoscute OSI şi TCP/IP
 Modelul OSI (Open Systems Interconnection) – dezvoltat între 1977 şi 1984, este mai
mult un ghid decât o specificare, au fost definite şi protocoale pe baza sa
 Modelul OSI constă din 7 niveluri: fizic, legătură de date, reţea, transport, sesiune,
prezentare, aplicaţie
 Comunicarea între nivelurile de acelaşi rang din 2 noduri: protocol
 Comunicarea între nivelurile dintr-un nod: interfeţe
1.2.1.Modelul OSI
Calculator A Calculator B
Protocol aplicaţie
Aplicaţie Aplicaţie Nivel 7
Interfaţă 7/6
Protocol prezentare
Prezentare Prezentare Nivel 6

Protocol sesiune
Sesiune Sesiune Nivel 5

Protocol transport Nivel 4


Transport Transport

Protocol reţea Nivel 3


Reţea Reţea

Protocol legătură date Nivel 2


Leg. date Leg. date

Legătură la nivel fizic Nivel 1


1.2.1. Modelul OSI
• Nivelul fizic: transferul biţilor printr-un mediu (canal de comunicare). Probleme: reprezentarea
fizică a unui bit, transmisie în ambele sensuri, stabilirea/terminarea unei conexiuni
• Nivelul legătură de date: transmite cadre de date (sute sau mii de octeţi), recunoaşte delimitările
cadrelor, poate cere retransmiterea unui cadru
• Nivelul reţea: dirijează (rutează) pachete. Fiecare pachet conţine şi informaţii de adresare (nodul
sursă şi nodul destinaţie); deciziile de rutare se iau pe baza topologiei reţelei (informaţii fixe) sau
dinamic.
• Nivelul transport acceptă date (la emisie) de la nivelul sesiune şi trebuie să asigure că ajung
corect, eventual fragmentate, la capătul celălalt sau de la nivelul reţea (la recepţie). Creează câte
o conexiune distinctă pentru fiecare solicitare de la nivelul sesiune, dar poate crea şi mai multe
conexiuni pentru o solicitare sau multiplexarea unei conexiuni între mai multe solicitări.
Realizează comunicare “capăt la capăt”(end-to-end) şi nu “pas-cu-pas”(step-by-step,
hop-by-hop) ca nivelurile inferioare. Informaţiile de adresare identifică programele (procesele)
aflate în comunicare
• Nivelul sesiune: controlează dialogul, stabilind dacă se poate realiza trafic în ambele sensuri,
poate introduce puncte de control pentru reluarea operaţiei în caz de eşec
• Nivelul prezentare: sintaxa şi semantica informaţiilor transmise între aplicaţii. Ex.: stabilirea unei
codificări standard pentru reprezentarea informaţiilor în timpul transferului
• Nivelul aplicaţie: teoretic fiecare aplicaţie poate defini un protocol specific. Există câteva
protocoale larg utilizate: terminal virtual, poştă electronică, transfer de fişiere, Web
1.2.2. Modelul TCP/IP
OSI TCP/IP •Este primul model în ordinea apariţiei (cca 1970,
DoD, Arpanet). Numele vine de la cele 2 protocoale
Aplicaţie Aplicaţie
principale
Prezentare •Nu are niveluri distincte pentru prezentare şi
sesiune, iar nivelurile fizic şi legătură de date sunt
Sesiune comasate în nod-reţea
•Nivelul Internet a fost conceput pentru comutarea
Transport Transport
de pachete. Este posibil ca pachetele să ajungă la
destinaţie în altă ordine decât cea de la emisie, sunt
Reţea Internet rearanjate de nivelurile superioare

Legătură No •Nivelul transport corespunde în bună măsură cu cel


date Nod de la OSI. Are 2 protocoale principale: TCP (cu
Fizic reţea conexiune) şi UDP (fără conexiune)
•Nivelul aplicaţie apare imediat deasupra nivelului
transport. Protocoale mai cunoscute: TELNET
(terminal virtual), FTP (transfer de fişiere), SMTP
(poştă electronică), DNS (nume de domenii), HTTP
(hypertext – pagini Web)
1.2.3. Probleme generale de proiectare
•Probleme generate de: diferenţe arhitecturale
între calculatoare, diferenţe de caracteristici
fizice şi funcţionale ale mediilor de transmitere,
diferenţe de regim de tratare a informaţiilor DDate utile
•Ordinea octeţilor în reţea:arhitecturi
big-endian şi little-endian. În reţea câmpurile
multi-octet se transmit în format big-endian
Antet DDate utile
FTP
•Încapsularea: la fiecare nivel pe lângă
informaţia propriu-zisă există informaţii Antet Antet DDate utile
suplimentare de control, deci informaţia este TCP FTP
încapsulată. Software-ul de implementare a
protocolului de pe un anumit nivel este
responsabil numai pentru antetul corespunzător Antet Antet Antet DDate utile
nivelului respectiv, restul informaţiei este IP TCP FTP
considerată drept date utile
•Multiplexarea şi demultiplexarea: prefix Antet Antet Antet DDate utile Sufix
implementarea protocoalelor de nivel transport Ethernet IP TCP FTP Ethernet
trebuie să recunoască dacă un pachet primit de
la IP este destinat unui proces sau altuia
(demultiplexare) şi invers, trebuie să accepte
solicitări de la diverse procese şi să le
multiplexeze spre acelaşi modul software pentru
IP.
1.2.3. Probleme generale de proiectare

•Fragmentarea şi reasamblarea: majoritatea


tehnologiilor de comunicare în reţea au o
Proces A Proces B Proces C dimensiune maximă a pachetului (MTU) – la
Ethernet 1518 octeţi. Pentru mesaje mai lungi:
fragmentare la emiţător şi reasamblare la
receptor. Poate apare şi la niveluri superioare,
ex. un pachet TCP are max. 64 koct.
TCP UDP •Moduri de serviciu. Nivelul transport oferă
nivelului aplicaţie servicii cu următorii parametri:
•Cu conexiune / fără conexiune

•Secvenţiere
IP
•Controlul erorilor

•Controlul fluxului

•Flux de octeţi / mesaje

Interfaţă Interfaţă •Full-duplex / half-duplex


Ethernet Ethernet •Transmisii “capăt la capăt” sau “pas cu pas”:
controlul fluxului în TCP se face în regim “capăt
Cablu Ethernet 1 Cablu Ethernet 2 la capăt”; controlul erorilor se face “pas cu pas”.
Doar la nivel transport şi mai sus se poate lucra
“capăt la capăt”
1.2.3. Probleme generale de proiectare
• Tampoane şi date urgente: la serviciile orientate pe flux se folosesc tampoane la ambele
capete (impuse nu numai de diferenţe de viteză, dar şi de caracteristici de fiabilitate – ex. la TCP
emiţătorul trebuie să păstreze datele până la confirmarea primirii).Există situaţii în care se
impune ocolirea tampoanelor, ex. caracterul de terminare a unei comenzi, ^C. Pentru date
urgente (“out of band data”) există mecanisme care permit prelucrarea înaintea datelor din
tampon. Apar diferenţe între protocoale referitoare la cantitatea de date urgente, la mecanismele
de semnalare, etc.

Date Date
urgente urgente

Proces Proces
emiţătorro Tampon Tampon receptor
emisie reţea recepţie
ces

Serviciu cu flux Serviciu cu flux


1.2.4. Modelul client-server
•La nivel aplicaţie există de regulă asimetrie între • 3. Programul acceptă cererea şi o tratează,
programele de la cele 2 capete: unul oferă elaborând un mesaj de răspuns care se trimite
clientului. Severul poate lucra concurent sau iterativ
servicii, celălalt solicită serviciile. Acest mod de
lucru se numeşte modelul client-server • 4. Se revine la pasul 2

•Modelul client-server este dominant în • Programele server sunt scrise ca programe


proiectarea aplicaţiilor de reţea, deşi au apărut şi ciclice şi rămân în funcţiune un timp
alte modele: multistrat (multitier) sau nedeterminat după activare. Trebuie să
peer-to-peer existe posibilitatea de înregistrare şi ţinere
în aşteptare a cererilor de la clienţi.
•Este posibil ca acelaşi program să joace în
contexte diferite atât rol de server, cât şi rol de • Pentru programele client acţiunile tipice
client sunt:
• 1. deschiderea unui canal de comunicare şi
•În modelul client-server “clasic” programul cu rol conectarea la o locaţie determinată a unui anumit
de server trebuie pornit primul şi lucrează astfel: calculator

•1. se deschide un canal de comunicare şi se informează • 2. emiterea unei cereri de servicii către server şi
calculatorul local că programul poate accepta cereri de la recepţionarea rezultatelor, ori de câte ori este
clienţi necesar

•2. Programul rămâne în aşteptare până la sosirea primei • 3. închiderea canalului de comunicare şi terminarea
cereri de la un client programului

• Programele client sunt elementele active în


aplicaţiile client-server (serverele deschid
canalele de comunicare în mod pasiv)
1.3. Familia de protocoale TCP/IP
1.3.1. Prezentare generală
•TCP – Transmission Control Protocol: orientat pe
conexiune, flux de octeţi fiabil, full-duplex.
Proces Proces Niv. 5-7 Protocol de bază pentru multe aplicaţii
utilizator utilizator OSI
•UDP – User Datagram Protocol: fără conexiune,
nu garantează că datagramele ajung la destinaţie
(pentru aplicaţii mai simple)
•IP – Internet Protocol: pune la dispoziţie serviciul
TCP UDP Niv. 4
de transfer de pachete. Procesele utilizator nu
OSI
lucrează în mod normal cu acest protocol
•ICMP – Internet Control Message Protocol:
Niv. 3 OSI
utilizat pentru transmiterea informaţiilor de
comandă şi eroare între componentele reţelei.
ICMP IP ARP RARP Informaţiile sunt generate în modulele care
implementează familia de protocolae, nu în
procesele utilizator
•ARP – Address Resolution Protocol: realizează
Niv. 1-2 corespondenţa între o adresă Internet şi o adresă
Interfaţa hardware
hardware OSI
•RARP – Reverse Address Resolution Protocol:
cunoscând adresa hardware determină adresa
Internet
1.3.2. Nivelul reţea: IP
•Protocolul IP transmite datagrame de la o adresă
sursă la o adresă destinaţie în mod nefiabil 7 c.b. 24 c.b.
•Fiecare datagramă conţine adresa sursei şi adresa 0
Clasa A reţea Nod în reţea
destinaţiei, face posibilă rutarea ei independentă

•IP poate realiza şi fragmentarea datagramei, cu 14 c.b. 16 c.b.


duplicarea dreselor sursei şi destinaţiei în fiecare
fragment Clasa B 10 reţea Nod în reţea
•Are şi un anumit grad dde contol al fluxului: dacă apar
pierderi de pachete la destinaţie se emite un mesaj
ICMP către sursă
21 c.b. 8 c.b.
•Adresele de noduri IP (v4) sunt reprezentate pe 32 biţi, 110
Clasa C reţea Nod în
alocate în mod unic la nivel global. (IPv6 are adrese pe
reţea
128 biţi)

•Există 5 clase de adrese, separate prin valoarea din


biţii cei mai semnificativi
Clasa D 1110 adresă multicast
•Convenţie de scriere: fiecare din cei 4 octeţi ai adresei
este notat distinct, prin numărul zecimal corespunzător.
Ex. : 145.0.245.17

•Altă convenţie de scriere: 10.0.0.0/12 marchează


aplicarea unei măşti de 12 biţi pe adresa 10.0.0.0, 11110 rezervat
adică ia toate valorile posibile din ultimii 20 biţi Clasa E
1.3.2. Nivelul reţea: IP
•Adresele de clasă A se folosesc la reţele cu număr •Adresa 255.255.255.255 este adresa de broadcast
foarte mare de noduri – pot exista numai 126 astfel de locală: orice calculator dintr-o reţea locală recunoaşte pe
reţele. Primul octet are valoare mai mică decât 127 lângă adresa sa şi această adresă
•Adresele de clasă B folosesc 16 biţi pentru a •O adresă de forma 173.56.255.255 denotă broadcast la
identifica o reţea şi 16 pentru nod în reţea. Primul octet toate nodurile din clasa 173.56.0.0, indiferent dacă sursa
are valori între 128 şi 191. Pot exista peste 16.000 de e în aceeaşi reţea locală sau nu
astfel de reţele, fiecare cu peste 65.000 noduri
•Se face distincţie între adrese publice şi adrese private:
•Adresele de clasă C utilizează 24 biţi pentru a cele publice au caracter de unicitate şi sunt rutate în
desemna reţeaua şi 8 biţi pentru nod în reţea. Primul Internet; cele private pot fi utilizate intern într-o
octet are valori între 192 şi 223, sunt posibile peste 2 organizaţie, fără a fi vizibile în afară (nu sunt rutate)
milioane astfel de reţele, fiecare cu max. 256 noduri
•Adresele private sunt:
•Pe lângă comunicarea “punct la punct” există şi
aplicaţii la care un mesaj ajunge la mai mulţi receptori 10.0.0.0 – 10.255.255.255 (reţea de clasă A)
(teleconferinţă, cotaţii la bursă), care folosesc adrese
multicast (clasă D), cu primul octet între 224 şi 239. 172.16.0.0 – 172.31.255.255 (bloc de reţele de
clasă B)
•Adresele peste 224.0.0.0 (clasă E) sunt considerate
adrese rezervate. 192.168.0.0 – 192.168.255.255 (bloc de reţele de
clasă C)
•Există şi câteva adrese speciale: 127.0.0.1 este
bucla locală (loopback) care nu corespunde unei •Protocolul ARP: un nod trimte în mod broadcast un
interfeţe, se foloseşte pentru testarea software-ului de mesaj care conţine o adresă IP. Nodul care îşi
reţea recunoaşte adresa IP răspunde cu un mesaj care
conţine adresa sa fizică, destinat sursei iniţiale

•Protocolul RARP: nodul trimite în broadcast adresa sa


fizică; un nod “server” îi răspunde cu adresa IP
1.3.3. Nivelul transport: UDP şi TCP
•Mijlocul de identificare a proceselor utilizator în TCP şi
1
UDP trebuie să fie independent de sistemul de operare
2 Capăt posterior din nod
3 fereastră
4 •Se foloseşte portul, reprezentat fizic ca număr pe 16 biţi.
5 Există spaţii separate pentru TCP şi UDP, fiecare cu
6 65.536 porturi în fiecare nod
7
8 •Numerele de porturi <1024 se atribuie unor servicii
9
10 binecunoscute (well-known) şi funcţionează în regim
11 privilegiat. Programatorii obişnuiţi vor utiliza numai
12 porturi >1024. Numai serverele îşi înregistrează numere
13 de porturi, pentru a putea fi găsite de clienţi. Programele
14 client pot lăsa atribuirea portului la dispoziţia SO, având
15
16
deci porturi efemere
17
18 •TCP, protocol fiabil, poate folosi tehnica de achitare
19 pozitivă cu retransmitere, dar pentru eficienţă foloseşte
20 fereastra alunecătoare (sliding window): se transmit în
21 mod controlat octeţi în avans faţă de cei deja achitaţi.
22
23 •În antetul TCP este un număr de secvenţă, completat
24
25 de emiţător, care arată deplasamentul în flux al
Capăt anterior
26 începutului pachetului curent. Alt câmp, numărul de
fereastră
achitare, e completat de receptor în pachetul de achitare
şi arată ce pachet se achită. Un al treilea câmp, folosit
tot în pachetele de achitare, arată câţi octeţi mai poate
primi receptorul înainte de a trimite o nouă achitare
1.3.4. Nivelul aplicaţie: serviciul de nume de
domenii (DNS)

int com edu gov mil org net uk ro at

nato berkeley toronto acm ieee roedu ripe upt ibm co ac

cs eecs www cluj timisoara cs mec univie uni-klu

www bigfoot mat


• Serviciul de nume de domenii realizează corespondenţa între adrese IP şi nume simbolice ale nodurilor. A fost
definită o schemă ierarhică de construire a numelor de noduri, iar corespondenţa nume-adresă se face cu
ajutorul unei baze de date distribuite.

• Pentru a stabili corespondenţa nume – adresă un program de aplicaţie oarecare (partea de client pentru DNS)
apelează o procedură de bibliotecă (numită resolver) care trimite un pachet UDP la serverul DNS local (a
cărui identitate e stabilită de administratorul de reţea şi indicată într-un fişier de configurare al SO. Serverul
returnează adresa, iar resolver-ul o returnează clientului. Dacă nu e găsită pe serverul local, acesta apelează
la alte servere de nume, până adresa e găsită sau se returnează eroare
berkelez
1.3.4. Nivelul aplicaţie: serviciul de nume de
domenii (DNS)
•Conceptual în Internet există câteva sute de nume
de domenii de nivel superior, fiecare se împarte în •Pentru indicarea unui nume de domeniu se scriu toate
subdomenii (domenii de nivel 1) care la rândul lor se componentele din ierarhie, de la cea mai specifică până
împart în subdomenii, etc. la un nume de domeniu superior. Ex.: bigfoot.cs.upt.ro

•La nivel superior există două categorii de domenii: •Nu se face distincţie între litere mari şi mici într-o
generice şi nume de ţări. Cele generice au fost componentă. Lungimea unei componente nu poate
introduse în SUA, dar acum pot desemna şi noduri din depăşi 64 caractere, lungimea totală e limitată la 255
alte ţări. caractere. Uneori trebuie făcută deosebirea între nume
relative şi nume absolute (ultimele se termină cu punct
•Nume generice: com (commercial), edu (educational), după numele de domeniu de nivel superior)
gov (government), org (organization), mil (pentru
forţele armate ale SUA), int (organisme internaţionale), •Atribuirea de nume nu e legată de adresele IP, ci de
net (organizaţii de administrare a reţelelor) limite organizaţionale. Fiecare domeniu este responsabil
pentru gestionarea domeniilor incluse
•Recent au fost introduse şi alte nume generice: info,
name, coop, jobs, mobi, museum, tel, travel •Protocolul DNS foloseşte pentru server portul 53 şi
defineşte şi formatul informaţiilor din baza de date. Ex.:
•Domeniile superioare nume de ţări constau din 2
$ORIGIN ro.
litere, conform standardului ISO 3166 (ex. ro –
România, uk – Marea Britanie, fr – Franţa, de – utt IN SOA ns.utt.ro.
Germania , dar şi eu – European Union) support.timisoara.rodeu.net. (199912243
86400 3600 604800 172800)
•Organizarea numelor din nivelurile inferioare variază
de la o ţară la alta: Austria, Japonia, Marea Britanie IN NS ns.utt.ro.
impun structurarea după tipuri de activităţi: co –
comercial, ac - academic IN MX bigfoot.cs.utt.ro.
1.3.4. Nivelul aplicaţie: poşta electronică (e-mail)
•Este, alături de transferul de fişiere, cea mai veche UUCP TCP/IP utilizator
aplicaţie (înainte de 1980)

•Se prezintă forma standardizată în 1982, prin


protocolul SMTP (Simple Mail Transfer Protocol),
pentru transmiterea de conţinut ASCII
rmail SMTP UA
•Forma de adresare: numelogin@numedomeniu

•În centrul sistemului de poştă electronică se află


agentul pentru transferul poştei (MTA) – preia mesajele
care vin din afara sistemului (SMTP, rmail), cât şi din queue mailbox
sistem (UA – User Agent); livrează mesaje către uux,
SMTP sau intern, prin mail MTA
•Agentul utilizator realizează interfaţa cu clienţii, cu aliases
servicii de compunere, editare, transmitere a mesajelor,
acces la mesaje recepţionate în cutia poştală (mailbox)
/bin/mail
•Şirul de mesaje queue păstrază temporar mesajele uux
până la livrare (spre mailbox sau spre exterior) SMTP

•Portul rezervat pentru SMTP este 25 din spaţiul pentru


TCP

•Funcţionarea protocolului poate fi ilustrată folosind UUCP TCP/IP


clientul TELNET
1.3.4. Nivelul aplicaţie: poşta electronică (e-mail)
Polaris> telnet localhost 25 QUIT

Trying 127.0.0.1... 221 2.0.0 polaris.umuc.edu closing connection

Connected to localhost. Connection to localhost closed by foreign host.

Escape character is '^]'. •Activarea agentului de transfer de la sursă


220 polaris.umuc.edu ESMTP Sendmail 8.12.11/8.12.9; Sat, 28 Feb 2009 05:58:05 (polaris.umuc.edu) s-a făcut prin clientul telnet indicând
-0500 (EST) portul 25
HELO bigfoot.cs.utt.ro
•Comenzile emise de agentul sursei sunt liniile care
250 polaris.umuc.edu Hello localhost [127.0.0.1], pleased to meet you încep cu majuscule, răspunsurile agentului de la
destinaţie (bigfoot.cs.utt.ro) sunt liniile care încep cu
MAIL FROM:<ijurca>
numere
553 5.5.4 <ijurca>... Domain name required for sender address ijurca
•Mai întâi se stabileşte legătura cu calculatorul
MAIL FROM:<ijurca@polaris.umuc.edu> destinatarului (comanda HELO)
250 2.1.0 <ijurca@polaris.umuc.edu>... Sender ok
•Urmează indicarea expeditorului (MAIL FROM), apoi a
RCPT TO:<ionel@cs.utt.ro> destinatarului (MAIL TO)
250 2.1.5 <ionel@cs.utt.ro>... Recipient ok •În continuare se transmite mesajul (comanda DATA)
DATA
•La sfârşit se întrerupe legătura prin comanda QUIT
354 Enter mail, end with "." on a line by itself
•În 1993 s-a adoptat o extensie a convenţiilor iniţiale,
An example of using SMTP protocol.
pentru a permite includerea în mesaje de conţinut
. non-ASCII, dar codificat ASCII: convenţia MIME
(Multipurpose Internet Mail Exchange)
250 2.0.0 n1SAw5kb027125 Message accepted for delivery
1.3.4. Nivelul aplicaţie: World Wide Web.
Protocolul HTTP
•WWW a fost propus în 1989 la CERN-Geneva de protocol://calculator:port/nume_de_cale#etichetă
fizicianul Tim Berners-Lee şi a fost demonstrat public în
decembrie 1991 unde:
•Motivare: să permită cercetătorilor răspândiţi în toată - protocol indică ce protocol se foloseşte pentru
lumea să colaboreze folosind colecţii de documente comunicare: http pentru documente hypertext, ftp pentru
compuse din rapoarte, planuri, desene, fotografii etc. şi transfer de fişiere, file pentru acces la un fişier local
aflate în permanentă schimbare
- calculator este numele nodului pe care se află
•Distincţie clară între client şi server documentul dorit (server WWW sau FTP)
•Un server WWW gestionează un număr de documente - port arată la ce port rulează serverul pentru
şi le trimite la cerere clienţilor documentul dorit. Este opţional dacă se foloseşte portul
standard al protocolului (80 pentru WWW)
•Un client WWW (browser Web) permite utilizatorului să
solicite documente de la un server WWW şi după - nume_de_cale indică de regulă un fişier, dar poate fi
recepţionare le redă pe ecran într-un format utilizată şi altă convenţie. Serverele WWW stabilesc o
corespunzător(de regulă grafic) anumită origine (rădăcină) a unui sistem de fişiere,
numele de cale fiind în raport cu această origine
•Principalele probleme legate de WWW:
- etichetă este element opţional, indică o anumită
•A) modul de identificare a documentelor în Internet
locaţie într-un document
•B) formatul pentru conţinutul documentelor
•B. Conţinutul documentelor Web este construit ca
•Protocolul de comunicare între client şi server
hypertext, adică în document pot apare legături spre
•A. Pentru identificarea documentelor s-a propus alte documente. Se foloseşte un limbaj de marcare,
conceptul de locator universal de resurse (Universal HTML (HyperText Markup Language)
Resource Locator – URL) care indică identitatea astfel:
1.3.4. Nivelul aplicaţie: World Wide Web.
Protocolul HTTP
•HTML a fost derivat prin simplificare dintr-un limbaj de
marcare mai general, SGML (Standard Generalized Markup
Language), este la versiunea 4.01

•Exemplu de document HTML:

<HTML>

<title>Exemplu de pagina Web</title>

<BODY>

<h1>Exemplu de pagina Web cu hypertext</H1>

Servere Web ale unor universitati din Romania:

<UL>

<li><a href=“http://www.upt.ro”>Universitatea”Politehnica”
Timisoara</A>

<LI> <A href=“http://www.utcluj.ro”>Universitatea tehnica


Cluj-Napoca</A></UL>

<HR>Pentru detalii scrieti la: <a href=mailto:ionel@cs.utt.ro


>ionel@cs.utt.ro</a>

</body></HTML>
1.3.4. Nivelul aplicaţie: World Wide Web.
Protocolul HTTP
ionel@bigfoot:~$ telnet localhost 80
•C. Protocolul de comunicare între client şi server este
HTTP(HyperText Transfer Protocol). Fiecare acţiune Trying 127.0.0.1...
constă dintr-o cerere emisă de client în format ASCII şi
un răspuns elaborat de server în format MIME. Connected to localhost.
Protocolul de nivel transport este de regulă TCP
Escape character is ‘^]’.
•Cererile pot fi simple (nu indică versiunea de protocol
HTTP) sau complete (cu indicarea versiunii şi cu o linie HEAD http://localhost/~ionel/test.htrml
HTTP/1.0
goală la sfârşit)

•Tipuri de cereri:
HTTP/1.1 200 OK
•GET – citirea (încărcarea) unei pagini Web

•HEAD – citirea antetului unei pagini Web Date: Tue, 11 Jan 2000 07:59:49 GMT

•PUT – scrie o pagină Web în colecţia de pagini a uneui server Web Server: Apache/1.3.6 (Unix) (Red Hat/Linux)
•POST – similară cu PUT, dar nu poate înlocui pagini existente
Last-Modified: Tue, 11 Jan 2000 07:52:35 GMT
•DELETE – şterge pagina adresată
Etag:”c68e5-387ae143”
•LINK şi UNLINK – stabilesc, respectiv termină legături între pagina
Web şi alte resurse
Accept-Ranges: bytes
•Exemplu de utilizare: utilizarea clientului TELNET
Content-Length: 539
pentru citirea antetului paginii Web pentru pagina
simplă dezvoltată mai înainte (presupune că pe Connection: close
calculatorul local este activat un server WWW)
Content-Type: text/html

Connection closed by foreign host