Acest material face parte din seria „Introducere în dezvoltarea întreprinderii”. Articole anterioare:
Bună! Astăzi vom afla despre protocoalele HTTP și HTTPS. Dar mai întâi, să clarificăm un punct: vorbim de protocoale de trimitere a datelor printr-o rețea la nivelul aplicației modelului OSI. Poate vă amintiți că am cunoscut modelul OSI într-unul dintre articolele anterioare. Dacă nu vă amintiți asta, iată-l .

Ce este un protocol de comunicare de date?
Acesta este ceea ce numim setul convenit de reguli care permit dezvoltatorilor diferitelor servicii să trimită informații într-un format pe care alții îl pot înțelege. De exemplu, puteți folosi Google Chrome pentru a obține informații atât de pe Facebook, cât și de pe Twitter, deoarece dezvoltatorii le trimit utilizând protocolul standard HTTP, care permite browserului dumneavoastră să le proceseze. Regulile uniforme sunt foarte convenabile pentru cei care dezvoltă partea de server: există o mulțime de biblioteci care pot converti informațiile pentru tine și le pot trimite folosind protocolul corespunzător. HTTP a fost conceput inițial ca un protocol pentru trimiterea de pagini HTML. Așa a fost folosit mult timp, dar acum programatorii îl folosesc adesea pentru a trimite atât șiruri de caractere, cât și fișiere media. În general, acest protocol este universal acceptat și versatil și este foarte ușor de utilizat. Și acum vom investiga cum să-l folosim.Structura HTTP
Ar trebui să remarcăm imediat că protocolul HTTP constă numai din text. Ceea ce ne interesează cel mai mult este structura acestui text. Fiecare mesaj este format din trei părți:- Linia de pornire — Aceasta definește unele date de întreținere.
- Anteturi — Acestea descriu parametrii mesajului.
- Corpul — Acesta este conținutul mesajului. Corpul trebuie separat de anteturi printr-o linie goală.
Iată cum arată o solicitare HTTP simplă:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Linia de start indică:
- GET — Metoda cererii
- / — Calea cererii
- HTTP/1.1 — Versiunea protocolului
- Gazdă — Gazda căreia i se adresează solicitarea
- User-Agent — Clientul care trimite cererea
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
unde codegym.cc este gazda, /send este calea cererii și ? este un separator care indică faptul că urmează parametrii de interogare. La sfârșit, perechile cheie-valoare („cheie=valoare”) sunt listate, separate de un ampersand. POST — Această metodă publică informații pe server. O solicitare POST poate trimite diverse tipuri de informații: parametri ca perechi „cheie=valoare”, JSON, cod HTML sau chiar fișiere. Toate informațiile sunt trimise în corpul mesajului. De exemplu:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
Solicitarea este trimisă la codegym.cc/user/create/json, iar versiunea protocolului este HTTP/1.1. „Accept” indică formatul de răspuns pe care se așteaptă să îl primească clientul. „Content-Type” indică formatul corpului mesajului trimis în cerere. „Lungimea conținutului” este numărul de caractere din corp. O solicitare HTTP poate conține o mulțime de anteturi diferite. Pentru mai multe informații, aruncați o privire la specificațiile protocolului .
Răspunsuri HTTP
După primirea unei cereri, serverul o procesează și trimite un răspuns clientului:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Linia de început a răspunsului conține versiunea protocolului (HTTP/1.1), codul de stare (200) și descrierea stării (OK). Anteturile sale includ tipul și lungimea conținutului. Corpul răspunsului conține cod HTML pe care browserul îl redă ca pagină HTML.
Codurile de stare de răspuns
Totul este clar în ceea ce privește corpul mesajului și anteturile, dar ar trebui să spunem câteva cuvinte despre codurile de stare. Codurile de stare de răspuns sunt întotdeauna de trei cifre. Prima cifră a codului indică categoria răspunsului:- 1xx — Informațional. Solicitarea a fost primită. Serverul este gata să continue.
- 2xx — De succes. Solicitarea a fost primită, înțeleasă și procesată.
- 3xx — Redirecționare. Trebuie efectuate acțiuni suplimentare pentru a procesa cererea.
- 4xx — Eroare client. Solicitarea conține erori sau nu respectă protocolul.
- 5xx — Eroare server. Solicitarea a fost compusă corect, dar serverul nu a putut să o proceseze.
- 200 OK — Solicitarea a fost primită și procesată cu succes.
- 201 Created — Solicitarea a fost primită și procesată cu succes, rezultând în crearea unei noi resurse sau instanțe.
- 301 Mutat permanent — Resursa solicitată a fost mutată permanent. Solicitările ulterioare către acesta ar trebui făcute folosind noua adresă.
- 307 Redirecționare temporară — Resursa a fost mutată temporar. Deocamdată, poate fi accesat folosind redirecționarea automată.
- 403 Interzis — Solicitarea a fost înțeleasă, dar este necesară autorizarea.
- 404 Not Found — Serverul nu a găsit resursa la această adresă.
- 501 Not Implemented — Serverul nu acceptă funcționalitatea necesară pentru a răspunde la cerere.
- 505 HTTP Version Not Supported — Serverul nu acceptă versiunea specificată a protocolului HTTP.
GO TO FULL VERSION