Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Cookies

Cookies sunt scrise inlantuit, delimitat de punct si virgula (mai putin ultima). Implicit, comunicarea HTTP este considerata stateless. Nu se poate face corelatie intre oricare doua cereri succesive. Cookies retin bucati de informatie trimise de la server catre client, pentru a putea fi refolosite in cereri ulterioare.


Note

Cookiurile sunt artefacte care se salvează doar la Client.

Inaintea datelor (sau la finalul cererii, daca nu exista date) se pune intotdeauna \r\n\


Data variaza in functie de tipul de data transmis. Cele mai des intalnite tipuri de date transmise sunt:

  • text/html - De exemplu, pagini HTML
  • application/x-www-form-urlencoded - Date de forma key1=value1&key2=value2&…&keyN=valueN. Datele sunt inlantuite prin “&”
  • application/json - Date de forma JSON (Javascript Object Notation). Folosite des in interactiunea cu API-uri
  • multipart/form-data - Date binare, de exemplu, fisiere

Pe baza informatiilor prezentate mai sus, o varianta simplificata a cererii catre facebook, din exemplu, ar arata asa:

    GET /search/top/?q=programare%20%web%202020 HTTPS\r\n
    Host: facebook.com\r\n
    User-Agent: Mozilla/5.0\r\n
    Connection: keep-alive\r\n
    Cookie: c_user=XXXXXXXXXX; presence=XXXXXXX\r\n
    \r\n

Exemplu foarte simplu de POST.

POST /test HTTP/1.1
Host: foo.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

field1=value1&field2=value2

Note

Este obligatoriu sa puneti \r\n la finalul fiecarui rand din cerere, cu exceptia datelor atasate.


Un exemplu de implmentare a unei cereri HTTP de tip GET pe baza codului sursă din skeletpoate fi gasit mai jos.

    message = compute_get_request(SERVERADDR, "/api/v1/dummy", NULL, NULL, 0);
    send_to_server(sockfd, message);
    response = receive_from_server(sockfd);
    printf("%s\n", response);