Sunteți pe pagina 1din 9

Ministerul Educației, Culturii și Cercetării Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică și Microelectronică


Departamentul Ingineria Software și Automatică

RAPORT
la Lucrarea de Laborator Nr. 3
Programarea în Rețea
TEMA: HTTP Client.

A elaborat: st. gr. TI-172, Adasanu Gicu


A verificat: asistent universitar, Buldumac Oleg

Chișinău 2020
Sarcina lucrării:
Să se creeze o aplicație client HTTP.
Mersul lucrării:
În acest laborator vom crea o aplicaâie care ne va permite să ne conectăm la contul facebook prin
metoda de autentificare OAuth 2.0. OAuth 2.0 - reprezintă o metodă de autentificare prin care utilizatorul
își înregistrează aplicația sa pe platforma doriută, în cazult dat facebook după care va primi id aplicației
sale care îi va permite să deschidă un link special pentru autentificare. Introducînd credențiale dacă
autentificarea va merge cu success va primi ca răspuns tokemul pentru acces la resut request-urilor.
După logare vom cere datele despre user-ul autentificat și lista cu paginile sale, și vom avea
posibilitatea să postăm ceva pe pagina selectată.
Inițail vom deschide utilizînd browserul GoogleChrome pentru a trece autentificarea și primirea
token-ului.

Fig 1. Metoda pentru logare.


După ce am primit token-ul vom cere datele despre user.

Fig 2. Cererea către facebook pentru primirea datelor despre user.


Fig 3. Cererea pentru imagaginea profilului.

Fig 4. Crearea unui nou thread pentru a posta un mesaj pe pagină.

Testarea:

Fig 5. Forma pentru logare.


Fig 6. Autentificarea si primirea token-ului.

Fig 7. Datele despre user.


Fig 8. Crearea unui nou post pe pagină.

Fig 9. Postarea pe pagină.

 Răspunsuri la întrebări:
• Cum este formatat corpul unei cereri HTTP pentru o cerere HTTP de tip POST?
Valorile sunt trimise în corpul cererii, în formatul specificat la tipul conținutului. De obicei, tipul
conținutului este application/x-www-form-urlencoded, astfel corpul cererii folosește același format:
Când se încărcă un fișierului dintr-un formular, se utilizează codificarea multipart/form-date,
care are un format diferit și mai complicat.
• De unde știe un client HTTP ce tip de conținut trimite serverul HTTP?
Clientul HTTP stie de continutul ce trimite serverul HTTP din specificarea headerului Content-
Type de catre server, insa clientul poate sa ceara un format anumit cu ajutorul headerului Accept. El poate
sa fie de mai multe tipuri: text/html, text/plain, application/json, application/xml etc.
• Cum decide un client dacă ar trebui să aibă încredere în certificatul unui server?
Clientul poate sa decida daca ar trebui sa aiba incredere in certificatul unui server in dependenta
de Certification Authority sa fie transparent si trebuie să aibă o compatibilitate semnificativă cu browsere
mai vechi și mai ales dispozitive mobile mai vechi - aceasta este cunoscută sub denumirea de ubicuitate și
este una dintre cele mai importante caracteristici pe care un CA le poate oferi clienților.
• Care este problema principală cu certificatele autosemnate?
Certificatele autosemnate sunt ca si permisul de conducere falsificat, si cea mai mare problema
care poate sa apara este un atac de tip omului de la mijloc, care pot intercepta datele confidentiale.
• Conexiunea persistentă HTTP – care sunt principalele beneficii?
Modelul de conexiune persistentă menține deschise conexiunile între cererile succesive,
reducând timpul necesar pentru a deschide conexiuni noi. Modelul de canalizare HTTP merge cu un pas
mai departe, prin trimiterea mai multor solicitări succesive, fără să așteptăm măcar un răspuns, reducând
o mare parte din latența din rețea.
• Ce este negocierea conținutului în HTTP și cum are loc?
În HTTP, negocierea conținutului este mecanismul utilizat pentru difuzarea diferitelor
reprezentări ale unei resurse la același URI, astfel încât agentul utilizator poate specifica care este cel mai
potrivit pentru utilizator (de exemplu, ce limbă pentru document, ce format de imagine sau ce tip de
encoding folosește pagina).
• Care sunt tipurile de negociere a conținutului HTTP?
În negocierea conținutului bazată pe server, browserul (sau orice alt tip de user-agent) trimite
mai multe anteturi HTTP împreună cu adresa URL. Aceste anteturi descriu alegerea preferată a
utilizatorului. Serverul le folosește ca indicii, iar un algoritm intern alege cel mai bun conținut pentru a-l
servi clientului.
În negocierea bazată pe agent, atunci când se ajunge la o solicitare ambiguă, serverul trimite
înapoi o pagină care conține legături către resursele alternative disponibile. Utilizatorului i se prezintă
resursele și îl alege pe cel pe care să-l folosească.
• Ce este un ETag în HTTP și cum funcționează?
Antetul de răspuns ETag (entitate etichetă) oferă un mecanism pentru a memora în cache
resursele neschimbate. Valoarea acestuia este un identificator care reprezintă o versiune specifică a
resursei.
• Diferența dintre protocoalele fără stare și cele cu stare. Cărui tip îi aparține HTTP?
Protocoalele fără stare sunt tipul de protocoale de rețea în care Clientul trimite o cerere către
server și răspunsul serverului înapoi în funcție de starea curentă. Nu este necesar ca serverul să rețină
informații de sesiune sau o stare despre fiecare partener de comunicare pentru mai multe solicitări.
Protocolul cu stare, dacă clientul trimite o solicitare către server, atunci se așteaptă la un fel de
răspuns, dacă nu primește niciun răspuns, atunci va retrimite cererea.
Protocolul HTTP face parte din protocoale fără stare.
• Avantajele cheie ale HTTP/2 în comparație cu HTTP/1.1
Cele mai semnificative avantaje ale HTTP/2 în comparație cu HTTP/1.1 sunt:
- viteze mai rapide de încărcare a paginii web (până la 2x)
- site-uri adaptive cu dispozitive mobile
 securitate mai bună
- compatibilitate cu HTTP/1.1
• Ce este un tip MIME, din ce constă și pentru ce se folosește?
Un tip media (MIME) este un standard care indică natura și formatul unui document, fișier sau
sortiment de octeți. Structura acestui tip este urmatoare: tip/subtip. Tipul reprezinta categoria generală în
care intră tipul de date, cum ar fi video sau text. Subtipul identifică tipul exact de date de tipul specificat
pe care îl reprezintă tipul MIME. Cele mai populare sunt: text/plain, text/html, multipart/form-data,
application/json, application/x-www-form-urlencoded etc.
• Care este diferența dintre GET și POST?
Metoda GET: Datele sunt solicitate de la o resursă specifică
Metoda POST: Datele sunt trimise pentru a fi procesate către o anumită resursă
• Care este diferența dintre PUT și POST?
Metoda PUT: pune un fișier sau resursă la un anumit URI. Dacă există deja un fișier sau resursă
la acel URI, PUT înlocuiește acel fișier sau resursă
Metoda POST: Datele sunt trimise pentru a fi procesate către o anumită resursă
• Care sunt metodele idempotente în HTTP și care sunt scopul lor.
Metodele Idempotent sunt metode HTTP care pot fi apelate de mai multe ori și vor produce
același rezultat. Sunt considerate opțiunea sigură pentru a actualiza o resursă pe server. Unele exemple de
metode HTTP idempotente sunt GET, PUT și PATCH. Indiferent de câte ori se apelează, vor produce
același rezultat cu același URI.
• Cum sunt identificate resursele în protocolul HTTP?
Ținta unei solicitări HTTP se numește „resursă”, a cărei natură nu este definită, poate fi un
document, o fotografie sau orice altceva. Fiecare resursă este identificată de către un URI (Uniform
Resource Identifier) utilizat în HTTP pentru identificarea resurselor. Identitatea și locația resurselor de pe
Web sunt date în mare parte de o singură adresă URL (Uniform Resource Locator, un fel de URI). Există,
uneori, motive pentru care identitatea și locația nu sunt date de același URI: HTTP folosește un antet
HTTP specific, Alt-Svc atunci când resursa solicitată dorește ca clientul să o acceseze în altă locație.
• Care sunt metodele sigure și nesigure în HTTP?
Metode sigure: OPTIONS, GET, HEAD
Metode nesigure: PUT, POST, DELETE, PATCH
• Pentru ce este nevoie de cURL?
Curl este un instrument de linie de comandă și utilizează sintaxa URL pentru a transfera date
către și de pe servere. cURL este utilizată pe scară largă, datorită capacității sale de a fi flexibilă și
completează sarcini complexe. De exemplu, se poate utiliza curl pentru lucruri precum autentificarea
utilizatorului, postare HTTP, conexiuni SSL, suport proxy, încărcări FTP și multe altele.
• Pentru ce este nevoie de HTTP Proxy?
- Confidențialitate / Securitate online
- Activități anonime
- Gestionarea multiplă a conturilor
- Web Scraping – deoarece IP-ul poate fi blocat rapid la cereri multiple catre pagina
• Diferența dintre autentificare și autorizare
Autentificarea se referă la validarea credențialelor tale, cum ar fi numele de utilizator/ID de
utilizator și parola pentru a vă verifica identitatea.
Autorizarea are loc după ce identitatea utilizatorului este autentificată cu succes de sistem, ceea
ce va oferi, astfel, acces la anumite resurse precum informații, fișiere, baze de date, fonduri etc.
• Care sunt metodele de autentificare HTTP?
- HTTP Basic Authentication
- Cookies
- Tokens
- Signatures
- One-Time Passwords
• Modalități de identificare a utilizatorilor în HTTP
- Antetul cererii HTTP
- Adresa IP
- URL-uri lungi
- Cookie-uri
- Informație de logare (Autentificare)
• HTTP cookies – pentru ce se folosește?
Un cookie HTTP este o mică informație pe care un server o transmite browserului utilizatorului.
Browserul îl poate stoca și trimite înapoi cu următoarea solicitare către același server. De obicei, se
folosește pentru a informa dacă două solicitări provin din același browser - păstrarea unui utilizator
conectat, de exemplu. Cookie-urile sunt utilizate în principal în trei scopuri:
- Managementul sesiunii (logări, coșuri de cumpărături, scoruri de joc sau orice altceva
serverul trebuie să-și amintească)
- Personalizarea (teme, setări, preferințe etc.)
- Urmărirea (înregistrarea și analizarea comportamentului utilizatorului)

S-ar putea să vă placă și