This shows you the differences between two versions of the page.
|
pc:laboratoare:10 [2022/05/09 01:20] catalin.leordeanu [Suportul de laborator] |
pc:laboratoare:10 [2022/05/15 10:55] (current) vlad_andrei.badoiu [Exerciții] |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| ====Lectură laborator ==== | ====Lectură laborator ==== | ||
| De citit înainte de laborator: | De citit înainte de laborator: | ||
| - | * [[https://datatracker.ietf.org/doc/html/rfc2616#|Hypertext Transfer Protocol -- HTTP/1.1]] | + | * [[https://developer.chrome.com/blog/inside-browser-part1/|Inside look at modern web browser]] |
| + | * Sectiunea 2.2 (The Web and HTTP) din [[https://eclass.teicrete.gr/modules/document/file.php/TP326/%CE%98%CE%B5%CF%89%CF%81%CE%AF%CE%B1%20(Lectures)/Computer_Networking_A_Top-Down_Approach.pdf|Computer Networking: A Top-Down Approach (6th Edition)]]. | ||
| * [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview#|Overview of HTTP]] | * [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview#|Overview of HTTP]] | ||
| Line 111: | Line 112: | ||
| Cookie: c_user=XXXXXXXXXX; presence=XXXXXXX\r\n | Cookie: c_user=XXXXXXXXXX; presence=XXXXXXX\r\n | ||
| \r\n | \r\n | ||
| + | </code> | ||
| + | |||
| + | Exemplu foarte simplu de POST. | ||
| + | <code HTTP> | ||
| + | POST /test HTTP/1.1 | ||
| + | Host: foo.example | ||
| + | Content-Type: application/x-www-form-urlencoded | ||
| + | Content-Length: 27 | ||
| + | |||
| + | field1=value1&field2=value2 | ||
| </code> | </code> | ||
| Line 187: | Line 198: | ||
| Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/lab10|aici]], aveți de implementat următoarele cerințe: | Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/lab10|aici]], aveți de implementat următoarele cerințe: | ||
| - | - Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip GET pentru adresa __///api/v1/dummy//__ de la serverul principal. | + | 1. Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip GET pentru adresa __///api/v1/dummy//__ de la serverul principal. |
| - | - Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip POST pentru adresa __///api/v1/dummy//__ de la serverul principal cu cu orice conținut pentru date de forma **application/x-www-form-urlencoded**. | + | <note> |
| - | - Ne propunem implementarea unei mecanims de autentificare. Implementați folosind instrucțiunile din îndrumarul de laborator o cerere de tip POST pentru adresa __///api/v1/auth/login//__ de pe serverul principal folosind **username** //student// si **password** //student//. Similar cu task-ul precedent datele trebuie să fie de forma **application/x-www-form-urlencoded**. | + | Gasiti [[https://www.cloudshark.org/captures/83390916ab62|aici]] un exemplu de request GET. |
| - | - Folosind cookie-ul obtinut la pasul precedent, care poate fi **hardcodat**, implmentați o cerere de tip GET către adresa __///api/v1/weather/key//__ a serverului principal pentru a obține un cheia de conectare la serverul 188.166.16.132. | + | </note> |
| - | - Folosind cheia de sesiune, implmentați o cerere de tip **GET** la serverul //Openweather Map// cu adrese __///data/2.5/weather//__ pentru a obține datele despre vreme. Pentru acest task trebuie specificate coordonatele (lat,long) pentru care se dorește obținerea datelor. | + | |
| - | - Cu date obținute la punctul precedent, implementați o cerere de tip **POST** la serverul principal pentru verificarea. Pentru acest task trebuie să țineți cont de faptul că datele servite de serverul //Openweather Map// sunt în format **JSON**. | + | 2. Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip POST pentru adresa __///api/v1/dummy//__ de la serverul principal cu cu orice conținut pentru date de forma **application/x-www-form-urlencoded**. |
| - | - Implementați o cerere de tip GET către serverul principal pentru efectuarea delogări (LogOut). | + | <note> |
| + | Gasiti [[https://www.cloudshark.org/captures/74a6deb7aa4e?filter=http.request.method%20%3D%3D%20%22POST%22|aici]] o captura cu mesaje de tip POST. Mai multe detalii despre POST gasiti [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST|aici]] | ||
| + | </note> | ||
| + | |||
| + | 3. Ne propunem implementarea unei mecanims de autentificare. Implementați folosind instrucțiunile din îndrumarul de laborator o cerere de tip POST pentru adresa __///api/v1/auth/login//__ de pe serverul principal folosind **username** //student// si **password** //student//. Similar cu task-ul precedent datele trebuie să fie de forma **application/x-www-form-urlencoded**. | ||
| + | |||
| + | 4. Folosind cookie-ul obtinut la pasul precedent, care poate fi **hardcodat**, implmentați o cerere de tip GET către adresa __///api/v1/weather/key//__ a serverului principal pentru a obține un cheia de conectare la serverul __//34.241.4.235//__. | ||
| + | |||
| + | <note> | ||
| + | Gasiti [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies|aici]] un exemplu de mesaj GET cu cookie]]. | ||
| + | </note> | ||
| + | |||
| + | 5. Folosind cheia de sesiune, implmentați o cerere de tip **GET** la serverul //Openweather Map// cu adrese __///data/2.5/weather//__ pentru a obține datele despre vreme. Pentru acest task trebuie specificate coordonatele (lat,lon) pentru care se dorește obținerea datelor. | ||
| + | |||
| + | 6. Cu date obținute la punctul precedent, implementați o cerere de tip **POST** la serverul principal (34.241.4.235) pentru verificarea. Pentru acest task trebuie să țineți cont de faptul că datele servite de serverul //Openweather Map// sunt în format **JSON**. | ||
| + | |||
| + | 7. Implementați o cerere de tip GET către serverul principal pentru efectuarea delogări (LogOut) la ''/api/v1/auth/logout'' | ||
| Line 202: | Line 229: | ||
| + | <note> | ||
| + | O posibila solutie a laboratorului se gaseste [[https://ocw.cs.pub.ro/courses/_media/pc/laboratoare/lab10-sol.zip|aici]] | ||
| + | </note> | ||