CodeGym/Blog Java/Aleatoriu/Partea 3. HTTP/HTTPS
John Squirrels
Nivel
San Francisco

Partea 3. HTTP/HTTPS

Publicat în grup
Acest material face parte din seria „Introducere în dezvoltarea întreprinderii”. Articole anterioare: Partea 3. HTTP/HTTPS - 1Bună! 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:
  1. Linia de pornire — Aceasta definește unele date de întreținere.
  2. Anteturi — Acestea descriu parametrii mesajului.
  3. Corpul — Acesta este conținutul mesajului. Corpul trebuie separat de anteturi printr-o linie goală.
Protocolul HTTP este folosit pentru a trimite cereri către un server și pentru a primi răspunsuri de la server. Parametrii cererilor și răspunsurilor sunt ușor diferiți.

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
Apoi vin anteturile:
  • Gazdă — Gazda căreia i se adresează solicitarea
  • User-Agent — Clientul care trimite cererea
Corpul mesajului lipsește. Într-o solicitare HTTP, sunt necesare doar linia de început și antetul „Gazdă”. Acum să ne uităm la totul pas câte un pas. O solicitare HTTP trebuie să conțină o metodă. Există nouă dintre ele: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, CONNECT. Cele mai comune sunt GET și POST. Aceste două metode vor fi suficiente la început. GET — Această metodă solicită conținut de la server. În consecință, cererile cu metoda GET nu au un corp de mesaj. Dar dacă aveți nevoie, puteți trece parametrii prin cale (în linia de start) în următorul format:
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.
A doua și a treia cifră din cod indică un răspuns mai specific. De exemplu:
  • 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.
Pe lângă codul de stare a răspunsului, este trimisă și o descriere a stării. Acest lucru ajută la clarificarea ce înseamnă fiecare stare specifică. Protocolul HTTP este foarte practic: oferă un număr mare de anteturi, pe care le puteți folosi pentru a aranja o comunicare foarte flexibilă între un client și un server. O luare în considerare completă a tuturor antetelor cererii și răspunsurilor, metodelor de solicitare și codurilor de stare a răspunsului ar fi prea mult pentru un singur articol. Dacă aveți nevoie, puteți citi specificația oficială a protocolului, care descrie toate nuanțele. Este obișnuit să utilizați protocolul HTTP pe portul 80, așa că atunci când vedeți o adresă URL care se termină cu portul 80, puteți fi sigur că trebuie să utilizați HTTP pentru a-l accesa. Pe măsură ce tehnologia a evoluat și datele personale au început să fie trimise prin Internet, a devenit necesar să ne gândim la modul de a oferi protecție suplimentară pentru informațiile pe care clientul le trimite către server. Rezultatul acestei gândiri a fost protocolul HTTPS.

Diferența dintre HTTPS și HTTP

În ceea ce privește sintaxa, HTTPS este identic cu protocolul HTTP. Adică folosește aceleași linii de început și antete. Singurele diferențe sunt criptarea suplimentară și portul implicit (443) . HTTPS este criptat între HTTP și TCP, adică între straturile de aplicație și transport. Dacă ați uitat ce înseamnă asta, consultați articolul despre modelul OSI . Standardul de criptare de astăzi este TLS. Nu vom intra prea mult în acest subiect, dar amintiți-vă că criptarea are loc înainte ca informațiile să ajungă la stratul de transport. În HTTPS, absolut toate informațiile sunt criptate, cu excepția gazdei și a portului unde este trimisă cererea. Comutarea unui server pentru a utiliza protocolul HTTPS în loc de HTTP nu necesită utilizarea pentru modificarea codului serverului. Această caracteristică este activată în containerele de servlet, despre care vom discuta în articolele următoare. Și asta e tot pentru azi. De fapt, așteaptă o clipă. Pentru a pune mâna pe unele solicitări HTTP, deschideți Google Chrome, apăsați F12 și selectați fila „Rețea”. Toate cererile și răspunsurile trimise/primite de browserul dumneavoastră vor fi afișate aici. Partea 4. Elementele de bază ale Maven Partea 5. Servlet-uri și API-ul Java Servlet. Scrierea unei aplicații web simplă Partea 6. Containere servlet Partea 7. Prezentarea modelului MVC (Model-View-Controller)
Comentarii
  • Popular
  • Nou
  • Vechi
Trebuie să fii conectat pentru a lăsa un comentariu
Această pagină nu are încă niciun comentariu