Metode și structura protocolului HTTP. Vedeți ce este „HTTP” în alte dicționare

Probabil ați auzit deja de multe ori că Google dă preferință site-urilor care utilizează protocolul de conexiune HTTPS securizat. Este adevarat? În acest articol ne vom uita la protocoale HTTP și HTTPS , care este diferența dintre ele și merită să treceți site-ul dvs. la HTTPS.

HTTP – folosit pentru a prelua date de pe site-uri web ca protocol de aplicație. HTTPS – o extensie pentru protocolul HTTP, care are suport pentru protocoalele SSL și TLS. După cum puteți vedea, HTTP și HTTPS nu sunt protocoale diferite, iar HTTPS este doar un add-on pentru criptare, folosit pentru procesul securizat de schimb de informații și autorizare a serverelor care necesită securitate suplimentară.

Hypertext Transfer Protocol (HTTP) este folosit în principal pentru a accesa paginile HTML. Protocolul nu stochează informații despre sesiunea anterioară a utilizatorului, deci trimite mai puține date și, prin urmare, funcționează mai rapid.

HTTPS securizat este utilizat pentru autorizare și tranzacții securizate. Funcționează identic cu HTTP, dar folosește un strat criptografic suplimentar de protecție a datelor - protocolul SSL. Din punct de vedere tehnic, ambele protocoale folosesc două porturi diferite pentru comunicare: spre deosebire de HTTP, omologul securizat utilizează portul TCP 443. Datorită SSL, schimbul de date se realizează la un nivel securizat, iar acest lucru este foarte important pentru site-urile care stochează informații confidențiale despre clienți, de exemplu, datele cardurilor bancare.

Nu este deloc ciudat că motorul de căutare Google are mai multă încredere în site-urile care sunt preocupate de securitatea vizitatorilor, motiv pentru care proiectele cu HTTPS sunt clasate mai sus. Trecerea la „modul sigur” va fi utilă chiar și pentru site-urile care nu trebuie să-și facă griji cu privire la datele personale ale utilizatorilor. Astfel de site-uri vor primi un avantaj în rezultatele căutării și, în consecință, vor atrage și mai mulți vizitatori pe paginile lor.

Ce aspecte tehnice stau la baza TLS (Transport Layer Security) :

  • codificarea informațiilor pentru a îmbunătăți securitatea transmiterii acestora;
  • păstrarea integrității datelor care nu sunt modificate sau distorsionate în timpul transmiterii;
  • autentificare, care asigură că vizitatorul ajunge exact la site-ul de care are nevoie.

Deși motorul de căutare clasează mai sus site-urile cu HTTPS, acest factor are totuși o pondere mică în comparație cu altele cărora le acordă atenție, cum ar fi conținutul de calitate.

Beneficiile trecerii la HTTPS în ceea ce privește :

  1. menținerea datelor de referință ale utilizatorilor protejate;
  2. creșterea clasamentului de căutare (deși acest factor are încă puțină pondere, cu siguranță își va crește importanța în viitor);
  3. confidențialitate: criptarea tuturor comunicărilor, inaccesibilitatea terților, protecția informațiilor personale.

Dar pe lângă toate avantajele de mai sus, există și dezavantaje ale unei astfel de tranziții, de care mulți webmasteri se tem. De exemplu, dacă nu urmați sfaturile experților, trecerea la HTTPS reduce ușor viteza de încărcare a site-ului. În plus, un site HTTP și un site HTTPS sunt două resurse diferite pentru un motor de căutare, așa că este nevoie de timp pentru ca sistemul să înțeleagă că acesta este același site și să le lipească împreună. În plus, pentru a trece la modul securizat trebuie să cumpărați un certificat SSL, al cărui interval de preț depinde de tipul acestuia.

Pentru a evita problemele în timpul tranziției, trebuie să respectați următoarele reguli:

  • alege certificatul necesar pentru resursa ta: pentru un domeniu, multi sau wildcard;
  • utilizați certificate cu chei de 2048 de biți;
  • nu blocați paginile HTTPS de la indexarea în fișierul robots.txt;
  • Încercați pe cât posibil să nu utilizați noindex în metaeticheta „roboți”;
  • analizați tranzițiile de la HTTP la HTTPS în Google Webmaster Tools;
  • utilizați adrese URL relative fără a specifica protocolul pentru toate celelalte domenii etc.

Dacă urmați aceste sfaturi, puteți trece fără durere la protocolul HTTPS securizat. Crede-mă, vizitatorii și clienții tăi îl vor aprecia. La urma urmei, un site care este preocupat de siguranța datelor utilizatorilor săi are mai multă încredere. Comutați la HTTPS: Instalați SSL gratuit! Detalii .

La HyperHost puteți achiziționa certificatul SSL necesar pentru proiectul dvs. online și, astfel, puteți face tranziția la HTTPS. Suportul nostru tehnic vă va ajuta să faceți toate setările necesare și să vă răspundeți la toate întrebările. Despre avantajele unui certificat SSL și tipurile acestuia puteți citi în articolul anterior:. Beneficiile trecerii la HTTPS sunt descrise mai detaliat.

de 5075 ori 5 ori vizionate astăzi

Scopul prelegerii: formați o înțelegere a funcționării protocolului HTTP/HTTPS.

HTTP (HyperText Transfer Protocol) este unul dintre cele mai importante protocoale care permite transferul de date prin Internet. Protocolul HTTP este situat la al șaptelea strat de aplicație al modelului OSI și funcționează pe baza protocolului TCP.

Deoarece protocolul HTTP se află la nivelul aplicației, aplicațiile de aplicație îl pot folosi direct pentru a organiza comunicarea în rețea. În plus, protocolul HTTP este o parte critică a aplicațiilor web. În acest caz, browserul, folosind capabilitățile HTTP, interacționează cu serverul pentru a obține datele necesare.

Protocolul HTTP implică transferul de date în modul „cerere-răspuns”.. Mai mult, în cadrul unei astfel de interacțiuni pot fi transmise date de aproape orice tip - text simplu, hipertext (HTML), foi de stil, scripturi client, imagini, documente în diferite formate, informații binare etc.

În cadrul protocolului HTTP, există întotdeauna o distincție clară între client și server. Clientul este întotdeauna inițiatorul interacțiunii. Serverul, la rândul său, ascultă toate conexiunile de intrare și procesează fiecare dintre ele. Deoarece comunicarea HTTP funcționează pe bază de cerere-răspuns, trebuie generată o solicitare HTTP pentru a iniția o sesiune de transfer de date. Ca parte a acestei solicitări, clientul descrie ce resursă dorește să primească de la server și, de asemenea, specifică diverși parametri suplimentari. După aceasta, cererea este trimisă către server și acesta, la rândul său, procesează cererea și generează un răspuns HTTP, care conține informații despre serviciu și conținutul resursei care a fost solicitată. În general, procesul poate fi descris schematic după cum urmează.


O solicitare HTTP și un răspuns HTTP sunt similare ca structură și sunt apelate Mesaje HTTP. De fapt, toată interacțiunea în cadrul protocolului HTTP se reduce la redirecționarea mesajelor HTTP. Fiecare mesaj HTTP este informație text simplu prezentată într-un format specific. Să aruncăm o privire mai atentă la formatul mesajului HTTP.

Fiecare mesaj HTTP este format din mai multe linii. Prima linie este întotdeauna linia de bun venit, diferă semnificativ pentru o solicitare HTTP și un răspuns HTTP. De obicei, conține informații generale despre cerere. După prima linie dintr-un mesaj HTTP există antete HTTP - fiecare antet se află pe o linie nouă. Antetele HTTP sunt prezente atât în ​​cererea HTTP, cât și în răspunsul HTTP. Scopul antetelor HTTP este de a clarifica mesajul HTTP, astfel încât partea care primește acest mesaj HTTP să poată procesa mai precis mesajul primit. Numărul de anteturi de mesaje HTTP este variabil și depinde de mesajul HTTP specific. Dacă partea expeditoare consideră că acest antet HTTP este necesar în acest mesaj HTTP, atunci îl adaugă, dacă nu, atunci nu îl adaugă. Fiecare antet HTTP începe pe o linie nouă. Un antet HTTP constă dintr-un nume și o valoare, iar numele antetului îi definește scopul.


Setul de anteturi HTTP este urmat de o linie goală, urmată de corpul mesajului HTTP. Astfel, structura generală a unui mesaj HTTP poate fi reprezentată după cum urmează. Solicitare HTTP este generat pe client și trimis către server pentru a primi informații de la acesta. Conține informații despre resursa pe care trebuie să o descărcați, precum și informații suplimentare. Prima linie conține metoda de solicitare (pe care o vom analiza mai târziu în această prelegere), numele resursei (inclusiv calea relativă pe server) și versiunea protocolului. De exemplu, tipul de linie de salut ar putea fi definit ca " GET /images/corner1.png HTTP/1.1 ". O astfel de solicitare cere serverului să returneze o imagine aflată în folderul " imagini


" și numită "corner1.png". Antetele HTTP sunt importante pentru o solicitare HTTP deoarece indică informații clare despre cerere - versiunea browserului, capacitatea clientului de a accepta conținut comprimat, capabilități de stocare în cache și alți parametri importanți care pot afecta formarea unui răspuns. . Corpul unei solicitări HTTP conține de obicei informații care trebuie transferate pe server , plasarea datelor în corpul solicitării HTTP nu este permisă pentru toate metodele HTTP. De exemplu, corpul unei solicitări HTTP este întotdeauna necompletat dacă se utilizează metoda GET. În următoarea solicitare HTTP, clientul contactează serverul "", solicită resurse" imagini/colț.png„ și indică faptul că este capabil să accepte conținut comprimat „gzip” sau „deflate”, limba sa este engleza și indică versiunea browserului său. După cum sa menționat mai devreme, numărul și setul de anteturi pot varia semnificativ. Un alt exemplu este HTTP - cerere.


Această solicitare diferă de cea anterioară prin faptul că folosește metoda POST, care încarcă și date pe server. În acest caz, datele în sine sunt conținute în corpul cererii HTTP după o linie goală.

Răspuns HTTP generat de serverul web ca răspuns la o solicitare HTTP primită. Este similară ca structură cu o solicitare HTTP, dar are anumite diferențe. Principala diferență este în prima linie. În loc de numele resursei solicitate și metoda de solicitare, indică starea răspunsului. Starea indică cât de reușită a fost solicitarea HTTP. De exemplu, dacă un document este găsit pe server și poate fi emis clientului, atunci starea are valoarea " Bine", ceea ce indică faptul că solicitarea a fost finalizată cu succes. Totuși, pot apărea situații excepționale - de exemplu, documentul nu se află pe server sau utilizatorul nu are drepturi de a primi resursa. Vom lua în considerare un set de diferite stări de răspuns HTTP mesajele mai târziu în această prelegere, prima linie a răspunsului HTTP poate fi „HTTP/1.1 200 în răspunsul HTTP sunt, de asemenea, un element important , aceste antete HTTP pot conține informații despre tipul de conținut (document HTML, imagine etc.), lungimea conținutului (dimensiunea în octeți), data modificării, modul cache etc. Toate aceste antete afectează modul în care sunt afișate datele. client și, de asemenea, setați reguli pentru stocarea datelor în memoria cache a clientului. Un răspuns HTTP tipic ar putea arăta astfel:


În exemplul de mai sus, serverul indică faptul că resursa a fost găsită, tipul acesteia este un document HTML și indică, de asemenea, dimensiunea și data modificării. După linia goală vine conținutul documentului HTML, adică. în esență ceea ce a cerut clientul. Ca și în cazul unei cereri HTTP, numărul de anteturi dintr-un răspuns HTTP poate varia la discreția serverului web.

Când sa luat în considerare structura unei solicitări HTTP, conceptul a fost atins Metoda de solicitare HTTP. Metoda de solicitare HTTP determină modul în care va fi procesată cererea HTTP specificată, de exemplu. într-un anumit sens îi determină semantica. Deoarece cererile HTTP pot avea o mare varietate de semnificații, specificarea metodei este o parte importantă a construirii unei cereri HTTP. Solicitările HTTP pot avea următoarele semnificații: solicitarea unei resurse de pe server, crearea sau modificarea unei resurse pe server, ștergerea unei resurse de pe server etc.

Cele mai comune metode de solicitare HTTP sunt următoarele tipuri de metode:

OBȚINE vă permite să primiți informații de la server, corpul cererii rămâne mereu gol;
CAP similar cu GET, dar corpul răspunsului rămâne întotdeauna gol, vă permite să verificați disponibilitatea resursei solicitate și să citiți anteturile HTTP ale răspunsului;
POST vă permite să încărcați informații pe server, în esență schimbă resursa de pe server, dar este adesea folosit pentru a crea o resursă pe server, corpul cererii conține resursa în curs de modificare/creare;
A PUNE similar cu POST, dar în esență este implicat în crearea unei resurse, mai degrabă decât în ​​modificarea acesteia, corpul cererii conține resursa creată;
ȘTERGE elimină o resursă de pe server.

În plus față de aceste metode HTTP, există un număr mare de alte metode definite în specificația protocolului HTTP. Cu toate acestea, în ciuda acestui fapt, browserele folosesc adesea doar metodele GET și POST. Cu toate acestea, alte aplicații pot utiliza metode HTTP la discreția lor.

După cum am văzut mai devreme, răspunsul HTTP conține codul de stare sau cod de retur. Această stare arată starea răspunsului HTTP care a fost primit de la server. Acest mecanism este necesar pentru funcționarea protocolului HTTP, deoarece pot apărea diverse situații non-standard la procesarea unei cereri. Toate codurile de stare sunt numere din trei cifre. În plus, răspunsul HTTP poate conține o descriere text a stării. Toate codurile de stare sunt împărțite în cinci grupuri.

Fiecare grup de coduri de stare identifică situația în care se află cererea. Grupul este determinat de prima cifră a codului de stare. De exemplu, codurile de stare ale grupului 2xx indică succesul solicitării HTTP. Cele mai frecvent utilizate coduri de stare sunt prezentate în tabelul de mai jos.

Cod Descriere
1xx Codurile de informații
2xx Finalizarea cu succes a cererii
200 Solicitarea a fost procesată cu succes
201 Obiect creat
202 Informații acceptate
203 Informații care nu sunt de încredere
204 Fara continut
205 Resetați conținutul
206 Conținut parțial (de exemplu, când „descărcați” fișiere)
3xx Redirecționare (este necesară o acțiune pentru a finaliza solicitarea)
300 Mai multe opțiuni din care să alegeți
301 Resursa este mutată permanent
302 Resursa mutată temporar
303 Vedeți o altă resursă
304 Conținutul nu s-a schimbat
305 Utilizați un server proxy
4xx Problema nu este cu serverul, ci cu cererea
400 Cerere invalida
401 Fără permisiunea de a vizualiza resursa
402 Este necesară plata
403 Accesul este interzis
404 Resursa nu a fost găsită
405 Metodă nevalidă
406 Cerere nepotrivită
407 Este necesară înregistrarea pe un server proxy
408 Procesarea cererii a expirat
409 Conflict
410 Nu mai există resursă
411 Lungimea necesară
412 Condiția prealabilă nu este îndeplinită
413 Elementul solicitat este prea mare
414 Identificatorul de resurse (URI) este prea lung
415 Tip de resursă neacceptat
5xx Erori de server
500 Internal Server Error
501 Funcția nu este implementată
502 Defect de gateway
503 Serviciu indisponibil
504 Timpul gateway-ului a expirat
505 Versiune HTTP neacceptată

Acestea și alte coduri de stare sunt folosite pentru a transmite informații despre starea unei solicitări de la client către server.

O caracteristică distinctivă a protocolului HTTP este că în cadrul acestui protocol informațiile sunt transmise sub formă de text. Aceasta înseamnă că lucrul cu un astfel de protocol este destul de simplu. În plus, inginerii de securitate lasă deschis protocolul HTTP chiar și cu un regim de securitate strict. Prin urmare, implementarea interacțiunii rețelei în cadrul protocolului HTTP este una dintre domeniile promițătoare.

Cu toate acestea, în ciuda simplității protocolului, există o problemă de scurgere a informațiilor transmise. Deoarece informațiile sunt transmise în text simplu, interceptarea acestor informații este destul de simplă. În unele situații, această problemă nu este critică. Cu toate acestea, pentru aplicațiile web care funcționează cu informații confidențiale, acesta este un dezavantaj destul de semnificativ.

Din acest motiv, există o modificare a acestui protocol - HTTPS, adică Protocol HTTP cu suport de criptare.

După cum știți, există algoritmi clasici de criptare puternici care criptează datele pe baza unei chei existente. Aceeași cheie este folosită pentru a cripta și decripta datele - dacă cineva cunoaște cheia informațiilor criptate, atunci o poate decripta. O cheie este o secvență obișnuită de biți de o anumită lungime. Cu cât cheia este mai lungă, cu atât este mai dificil să spargi algoritmul de criptare. Prin urmare, pentru a vă proteja informațiile, trebuie să păstrați secretă cheia de criptare. Cu toate acestea, cum se poate realiza acest lucru în cadrul interacțiunii prin protocolul HTTP? La urma urmei, dacă transmiteți această cheie în text clar, atunci sensul criptării dispare. În acest caz, se folosește un alt tip de criptare – asimetric. În acest caz, există o pereche de chei - publice și private. Folosind o cheie publică, puteți doar cripta informațiile, iar folosind o cheie privată, o puteți decripta.


De obicei, cu această abordare, cheia privată este păstrată secretă, iar cheia publică este disponibilă public. Totuși, algoritmul asimetric este mai lent decât cel simetric, deci este folosit pentru schimbul inițial de chei simetrice. Să ne uităm la întreg algoritmul pentru cum funcționează o conexiune HTTP criptată.

Când un client contactează un server printr-un canal securizat, serverul stochează o cheie publică și privată. În momentul inițial de timp, serverul transmite clientului cheia publică de criptare asimetrică. Clientul generează aleatoriu o cheie de criptare simetrică și o criptează folosind cheia publică primită de la server. După aceasta, clientul trimite cheia criptată către server și, în acest moment, clientul și serverul au aceleași chei pentru criptarea simetrică. Urmează interacțiunea HTTP, care este criptată folosind această cheie simetrică. Cheia simetrică rămâne secretă și nu poate fi interceptată deoarece cheia privată (care poate fi folosită pentru a decripta primul mesaj care conține cheia simetrică) rămâne secretă pe server. Astfel, se asigură confidențialitatea și integritatea datelor transmise prin HTTP

Toate aplicațiile web se bazează pe protocolul HTTP. Protocolul HTTP transmite informații text și funcționează în modul cerere-răspuns. O cerere HTTP și un răspuns HTTP au o structură strict definită - o linie de bun venit, anteturi și un corp de mesaj. Numărul de anteturi HTTP este variabil. Antetele HTTP sunt separate de corpul mesajului printr-o linie goală. Fiecare cerere HTTP este trimisă la server ca parte a unei metode HTTP. Metoda HTTP determină semantica cererii (obține resursă, adaugă, schimbă, șterge etc.). În răspunsul HTTP, pe lângă informațiile de serviciu și datele utile, este trimisă starea cererii, care informează clientul despre succesul cererii. Toate codurile de stare sunt împărțite în grupuri. Deoarece datele transmise prin HTTP pot fi interceptate, aceasta nu asigură confidențialitatea informațiilor transmise.

Dacă este necesar un astfel de nivel de securitate, atunci trebuie să utilizați protocolul HTTPS, care oferă criptarea informațiilor transmise pe baza unei combinații de algoritmi de criptare simetrici și asimetrici.

Bună ziua, dragi cititori ai blogului. Când se studiază mecanismul responsabil pentru funcționarea corectă a Internetului, nu există nicio scăpare de la necesitatea de a dedica timp principalelor sale aspecte, care, fără îndoială, includ protocolul de transfer de date HTTP și versiunea sa securizată HTTPS.

Baza pentru funcționarea acestui instrument, care permite browserului utilizatorului să deschidă fișierele și documentele necesare pentru a obține informații, este tehnologia „client-server”, ale cărei detalii vor fi discutate în acest articol de mai jos.

Desigur, cei care doresc să-și dedice cu adevărat activitățile lucrului cu rețele de calculatoare și dezvoltării de programe de rețea trebuie să studieze această problemă la maximum pentru a obține calificările corespunzătoare. Dar nu avem nevoie de asta.

Principalul lucru este să înțelegeți ce este HTTP în termeni generali și care sunt principalele caracteristici ale HTTPS, precum și să înțelegeți principiile de bază care sunt încorporate în acestea. Astfel de cunoștințe vor fi utile, printre altele, pentru optimizarea și promovarea site-ului dvs., veți primi o confirmare necondiționată a acestui lucru din acest și articolele ulterioare pe această temă.

Ce este HTTP și cum funcționează?

3. Pentru a obține documentul dorit pe Internet, utilizatorul trebuie doar să introducă adresa URL dorită în bara de căutare a browserului (mai multe despre structura URL), care conține doar numele protocolului HTTP (sau HTTPS).— este indicată modificarea actuală a protocolului. Momentan este HTTP 1.1 (puteți citi specificația acestuia). Cu toate acestea, următoarea versiune a protocolului 2.0 există deja în formă de schiță, care se bazează pe .

Linia de jos reprezintă Antet gazdă ca parte a unei cereri HTTP trimise de browser către server în conformitate cu IP-ul primit de la DNS. Pentru ce e asta? Pentru a identifica site-ul dorit, deoarece serverele web găzduiesc de obicei mai mult de o resursă.

Să ne uităm la un exemplu clar pentru a consolida ceea ce am învățat. Să presupunem că browserul a primit o „sarcină” de la utilizator pentru a afișa o pagină cu următoarea adresă:

Http://subscribe.ru/group/

Apoi, o solicitare HTTP folosind metoda GET poate fi compusă după cum urmează (în acest caz, de obicei, nu există corp de mesaj):

GET /group/ HTTP/1.1 Gazdă: subscribe.ru

Pentru claritate, am oferit doar un exemplu foarte simplu, inclusiv un antet Gazdă, de fapt, pot fi mai multe dintre ele. Dar asta nu este tot. La urma urmei, comunicarea completă necesită un dialog, care se stabilește după ce serverul răspunde la cererea browserului. Linia inițială a răspunsului poate fi, de asemenea, reprezentată schematic:

Codul de stare HTTP/Versiune

Acum să ne uităm pe scurt la compoziția răspunsului serverului:

1. Versiunea HTTP indicat prin analogie cu cererea.

2. Cod de stare(Cod de stare) - trei numere care informează despre starea documentului solicitat de browser. De exemplu, 200 - OK, pagina există și va fi afișată în browser, 301 - a fost făcută o redirecționare către o altă adresă URL, - nu există nicio pagină web la acea adresă (poate că a fost ștearsă sau utilizatorul a făcut o greșeală la introducerea URL-ului).

3. Explicaţie(Expresia de motiv) - textul adăugării la codul de răspuns. În unele cazuri, explicația poate diferi de standard sau poate fi absentă cu totul. Acest lucru se datorează și configurației software-ului găzduit pe server.

Exemplu real? Vă rog. Să încercăm să obținem răspunsul serverului la solicitarea pe care am dat-o ca exemplu mai sus (url „http://subscribe.ru/group/”). Va arăta astfel (linia de antet inițială):

HTTP/1.1 200 OK Server: nginx Data: Sam, 10 iunie 2017 06:36:38 GMT Tip de conținut: text/html; charset=utf-8 Conexiune: keep-alive Content-Language: ru Set-Cookie: Subscribe::Viziter=UQkivlk7k3YO3DgjAxM2Ag==; expiră=Joi, 31-Dec-37 23:55:55 GMT; domeniu=subscribe.ru; cale=/ P3P: policyref="/w3c/p3p.xml", CP="NOI PSA OUR BUS UNI"

În acest caz, nu există o explicație și un corp de mesaj care, atunci când se utilizează metoda GET, poate conține, de exemplu, codul HTML al documentului solicitat (pagina web). În funcție de tipul de aplicație client, aceste secțiuni pot fi prezente.

Deci, să rezumăm pe scurt cele de mai sus. Dacă utilizatorul introduce adresa URL a paginii pe care o caută, cu intenția de a prelua conținutul acesteia pentru vizualizare, browserul trimite o solicitare GET către serverul dorit și primește un răspuns. În urma acestei comunicări, fie (în circumstanțe favorabile) se va afișa conținutul documentului solicitat, fie nu.

În orice caz, conținutul răspunsului HTTP al serverului (inclusiv codul de stare) poate oferi informații utile legate de documentul solicitat.

Pentru ca informațiile de mai sus să se potrivească fără efort în puzzle, lipsește un exemplu specific. O vom analiza folosind unul dintre (acest browser web este instrumentul meu de lucru) numit Antete HTTP.

Este convenabil deoarece oferă o imagine completă a interacțiunii client-server, oferind conținut într-o „sticlă” Solicitare HTTP (cerere) și răspuns (răspuns). Uită-te la documentul pe care l-a produs acest plugin când urmărești un link de la o pagină a blogului meu la alta:


Aici foarte sus se află metoda GET, prin care browserul accesează serverul, precum și starea paginii, marcată cu codul de stare 200 OK, care arată clar că serverul a transmis toate datele referitoare la solicitarea. pagină web.

De asemenea, de interes Antete HTTP, prezentat mai jos. De exemplu, item "Referitor" furnizează informații sub forma URL-ului de la care s-a făcut tranziția.

Titlu "Agent utilizator" reflectă exact aplicația client care a trimis cererea către serverul web. În acest caz, acesta este un browser, dar pot exista și altele (dispozitive mobile, roboți de căutare etc.). Datele prezentate în User Agent sunt necesare pentru ca software-ul server să identifice aplicația care trimite cererea.

Doar roboții motoarelor de căutare, care scanează paginile site-ului web pentru a obține informații care influențează clasamentul, sunt de interes primordial pentru noi, deoarece ei sunt cei care decid soarta unei anumite pagini în ceea ce privește eficacitatea promovării acesteia.

De aceea, în următoarea publicație intenționez să mă opresc mai detaliat asupra modului de vizualizare a antetelor HTTP și de a verifica codurile de răspuns ale serverului în mod specific pentru o solicitare de robot, ceea ce este extrem de important pentru webmasteri în lumina optimizării resurselor SEO. Prin urmare, abonați-vă pentru a primi cel mai recent articol în timp util.

Ce este special la protocolul HTTPS securizat?

Sunt sigur că toți utilizatorii de Internet, fără excepție, inclusiv începătorii, sunt conștienți de existența unui protocol special numit HTTPS (Hypertext Transfer Protocol Secure), care servește la protejarea datelor cu caracter personal privind serviciile în care se utilizează transferul acestora (sisteme de plată, online). magazine, mari portaluri specializate etc.).

Dacă introduceți adresa paginii unui site similar, această conexiune va fi indicată în mod special. În Google Chrome (), de exemplu, va fi afișat un lacăt cu inscripția „Trusted” în verde, când dați clic pe el veți vedea câteva informații legate de protecția datelor cu caracter personal:


Ce este HTTPS? Strict vorbind, nu este un protocol independent. Acesta este HTTP standard, care funcționează prin mecanisme TLS sau SSL, capabil să garanteze criptarea, care împiedică hackerii să intercepteze și să obțină date confidențiale.

În mod implicit, când se operează un protocol securizat, este utilizat portul 443 (dacă vă amintiți, pentru HTTP standard este 80). Criptarea HTTPS folosește lungimi de cheie de 40, 56, 128 și 256 de biți (). Cu toate acestea, primele două opțiuni nici nu ar trebui luate în considerare, deoarece nu pot oferi un nivel suficient de securitate.

Recent, motoarele de căutare, în special Google, i-au convins activ pe proprietarii tuturor site-urilor să treacă la un protocol securizat, sugerând subtil că acest punct va fi luat în considerare la clasare. Drept urmare, acum multe resurse (chiar și bloguri obișnuite), și nu doar site-uri strâns legate de transferul de date cu caracter personal, funcționează deja cu HTTPS.

Mai mult, hosterii de top oferă achiziționarea unui certificat SSL securizat, care este necesar pentru a activa o conexiune sigură.

Desigur, nu am luat în considerare toate nuanțele utilizării protocolului HTTP (HTTPS), dintre care există multe. Acest subiect ar putea ocupa mai multe manuale impresionante. Cu toate acestea, sunt acoperite principalele aspecte care vor fi utile atât utilizatorului avansat, cât și webmasterului. Dacă încă nu sunteți mulțumit de cantitatea de informații primite, o puteți completa cu ușurință din următoarea prelegere video, care, în special, vorbește mai detaliat despre metode:

Am lansat o nouă carte, Social Media Content Marketing: How to Get Inside Your Followers' Heads and Make them to Love with Your Brand.

Abonati-va

HTTP este ceea ce permite transferul datelor. Inițial, a fost creat pentru trimiterea și primirea documentelor care conțin link-uri în interior pentru a face tranziția la resurse terțe.

Abrevierea este „HyperText Transfer Protocol”, care tradus înseamnă „protocol de transfer”. HTTP aparține grupului de straturi de aplicații pe baza specificului utilizat de OSI.

Pentru a înțelege mai bine ce înseamnă HTTP, să ne uităm la o analogie simplă. Să ne imaginăm că comunici cu un străin pe o rețea de socializare. Îți trimite un mesaj în engleză, îl primești. Dar nu poți înțelege conținutul pentru că nu vorbești bine limba. Pentru a descifra mesajul, utilizați un dicționar. După ce ați înțeles esența, răspundeți străinului în rusă și trimiteți răspunsul. Străinul primește răspunsul și, cu ajutorul unui traducător, descifrează mesajul. Pentru a simplifica întregul mecanism, protocoalele Internet HTTP îndeplinesc funcția de traducător. Cu ajutorul lor, browserul poate traduce conținutul criptat al paginilor web și poate afișa conținutul acestora.

De ce este necesar HTTP?

Protocolul HTTP este folosit pentru a schimba informații folosind un model client-server. Clientul compune și transmite o cerere către server, apoi serverul o prelucrează și o analizează, după care se creează un răspuns și se trimite utilizatorului. La sfârșitul acestui proces, clientul lansează o nouă comandă și totul se repetă.

Astfel, protocolul HTTP vă permite să faceți schimb de informații între diverse aplicații de utilizator și servere web speciale, precum și să vă conectați la resurse web (de obicei browsere). Astăzi, protocolul descris asigură funcționarea întregii rețele. Protocolul de transfer de date HTTP este, de asemenea, utilizat pentru a transfera informații peste alte protocoale de nivel inferior, de exemplu, WebDAV sau SOAP. În acest caz, protocolul este un mijloc de transport. Multe programe se bazează, de asemenea, pe HTTP ca instrument principal pentru schimbul de informații. Datele sunt prezentate în diferite formate, de exemplu, JSON sau XML.

HTTP este un protocol pentru schimbul de informații printr-o conexiune IP/TCP. De obicei, serverul folosește portul TCP 80 pentru aceasta. Dacă portul nu este specificat, software-ul client va folosi în mod implicit portul de tip TCP 80. În unele cazuri, pot fi utilizate alte porturi.

Protocolul HTTP folosește o schemă de criptare simetrică și utilizează criptosisteme simetrice. Criptosistemele simetrice implică utilizarea aceleiași chei pentru a cripta și decripta informațiile.

Care este diferența dintre HTTP și HTTPS

Diferența poate fi detectată chiar și din decodarea abrevierilor. HTTPS înseamnă Hypertext Transfer Protocol Security. Astfel, HTTP este un protocol independent, iar HTTPS este o extensie pentru a-l proteja. HTTP transmite informații neprotejate, în timp ce HTTPS oferă protecție criptografică. Acest lucru este valabil mai ales pentru resursele cu autorizare responsabilă. Acestea ar putea fi rețele sociale sau site-uri cu sisteme de plată.

Care sunt pericolele transmiterii datelor neprotejate? Un program interceptor le poate transfera atacatorilor în orice moment. HTTPS are o organizare tehnică complexă, care vă permite să protejați în mod fiabil informațiile și să eliminați posibilitatea accesului neautorizat la acestea. Diferența constă în porturi. HTTPS funcționează de obicei pe portul 443.

Astfel, HTTP este folosit pentru transferul de date, iar HTTPS permite transferul securizat de date folosind criptarea și autorizarea pe resurse cu un nivel ridicat de securitate.

Funcționalitate suplimentară

HTTP este bogat în funcționalități și este compatibil cu diferite extensii. Specificația 1.1 folosită astăzi permite ca antetul Upgrade să fie folosit pentru a comuta și a lucra prin alte protocoale atunci când se schimbă date. Pentru a face acest lucru, utilizatorul trebuie să trimită o cerere către server cu acest antet. Dacă serverul trebuie să treacă la un anumit schimb folosind un alt protocol, acesta returnează o solicitare către client, care afișează starea „426 Upgrade Required”.

Această caracteristică este relevantă în special pentru schimbul de informații prin WebSocket (are specificația RFC 6455, permițându-vă să faceți schimb de date în orice moment, fără solicitări HTTP inutile). Pentru a migra la WebSocket, un utilizator trimite o solicitare cu antetul Upgrade și valoarea „websocket”. Apoi, serverul răspunde cu „101 Switching Protocols”. După acest moment, începe transferul de informații prin WebSocket.

Protocolul de transfer hipertext HTTP (RFC 1945, 2068) este conceput pentru a transfera documente hipertext de la un server la un client. Protocolul HTTP este un protocol de nivel de aplicație. Conform RFC, protocolul său de transport trebuie să fie un protocol orientat spre conexiune care transferă datele în mod fiabil și nu păstrează granițele dintre mesaje.

În practică, în marea majoritate a cazurilor, protocolul de transport pentru HTTP este TCP, serverul HTTP (server Web) așteaptă o conexiune din partea clientului, standard pe portul TCP 80, iar clientul HTTP (browser Web) inițiază conexiunea.

În termeni web, tot ceea ce un utilizator poate accesa - documente, imagini, programe - se numește resurse.

Fiecare resursă are o adresă unică pentru Web, numită un identificator universal de resurse (URI - Universal Resource Identifier).

În cel mai general caz, URI-ul arată astfel:

protocol://utilizator:parolă@gazdă:port/cale/fișier?paremeters#fragment

Câmpurile URI individuale au următoarea semnificație:

protocol - protocol de aplicație prin care se accesează resursa;

utilizator - utilizatorul în numele căruia este accesată resursa sau utilizatorul însuși ca resursă;

parola - parola de utilizator pentru autentificare la accesarea resursei;

gazdă - adresa IP sau numele serverului pe care se află resursa;

port - numărul portului pe care rulează serverul, oferind acces la resursă;

cale - calea către fișierul care conține resursa;

fișier - fișier care conține resursa;

parametri - parametrii de prelucrare de către programul-resursă;

fragment - punctul din fișier de la care ar trebui să fie afișată resursa.

Interacțiunea dintre client și serverul Web se realizează prin schimbul de mesaje.

Mesajele HTTP sunt împărțite în solicitări client către server și răspunsuri server către client.

Mesajele de solicitare și răspuns au un format comun.

Ambele tipuri de mesaje arată astfel: mai întâi există o linie de început, apoi eventual unul sau mai multe câmpuri de antet, numite și simplu antete, apoi o linie goală (adică o linie formată din caracterele CR și LF), indicând sfârșitul câmpurilor de antet și apoi, eventual, corpul mesajului:

linia de start

anteturi generale, care pot fi prezente atât în ​​cerere, cât și în răspuns;

anteturile cererii, care pot fi prezente doar în cerere;

anteturi de răspuns, care pot fi prezente numai în răspuns;

anteturile de entitate, care se referă la corpul mesajului și descriu conținutul acestuia.

Fiecare antet constă dintr-un titlu, un caracter două puncte „:” și o valoare. Cele mai importante rubrici sunt prezentate în tabel. 1.

tabelul 1

Antetele protocolului HTTP

Titlu

Scop

Anteturi obiect

Enumeră metodele acceptate de server

Codificarea conținutului

Modul în care este codificat corpul mesajului, de exemplu pentru a reduce dimensiunea

Lungimea mesajului în octeți

Tipul de conținut și eventual câțiva parametri

O etichetă unică de resurse pe server care vă permite să comparați resurse

Data și ora la care resursa de pe server se va modifica și va trebui recuperată din nou

Data și ora la care conținutul a fost modificat ultima dată

Antete de răspuns

Numărul de secunde după care solicitarea trebuie repetată pentru a obține conținut nou

URI-ul resursei de accesat pentru a obține conținutul

Data și ora sau numărul de secunde după care cererea trebuie repetată pentru a obține un răspuns de succes

Numele software-ului server care a trimis răspunsul

Antete de solicitare

Tipuri de conținut pe care clientul le „înțelege” și pe care le poate reda

Codificări de caractere în care clientul poate accepta conținut text

Modul în care serverul poate codifica mesajul

Numărul gazdei și portului de la care este solicitat documentul

Dacă-Modificat-De vreme ce

Dacă-Nemodificat-De vreme ce

Antete de solicitare pentru acces condiționat la resurse

Solicitați o parte dintr-un document

Nume software client

Titluri generale

Indică serverului să închidă sau să mențină sesiunea în viață

Data și ora la care a fost generat mesajul

O descriere detaliată a antetelor HTTP/1.0 poate fi găsită în RFC 2068.

Corpul mesajului conține informațiile reale care sunt transmise - sarcina utilă a mesajului. Corpul mesajului este o secvență de octeți (octeți). Corpul mesajului poate fi codificat, de exemplu, pentru a reduce cantitatea de informații transmise, iar metoda de codificare este indicată în antetul obiectului Content-Encoding.

Un mesaj de solicitare de la un client către un server constă dintr-o linie de solicitare, anteturi (general, cereri, obiect) și, eventual, un corp de mesaj. Linia de solicitare începe cu metoda, urmată de identificatorul resursei solicitate, versiunea protocolului și caracterele de final de linie:

<Метод> <Идентификатор> <Версия HTTP>

Metoda specifică o comandă de protocol HTTP care să se aplice resursei solicitate. De exemplu, metoda GET indică faptul că clientul dorește să recupereze conținutul unei resurse. Identificatorul identifică resursa solicitată. Versiunea HTTP este indicată printr-o linie ca aceasta:

HTTP/<версия>.<подверсия>

RFC 2068 introduce protocolul HTTP/1.1.

Să ne uităm la principalele metode ale protocolului HTTP.

Metoda OPȚIUNI solicită informații despre opțiunile de conectare (de exemplu, metode, tipuri de documente, codificări) pe care serverul le suportă pentru resursa solicitată. Această metodă permite unui client să specifice opțiunile și/sau cerințele asociate cu o resursă sau cu capabilitățile serverului fără a efectua nicio acțiune asupra resursei sau a determina încărcarea acesteia.

Dacă răspunsul serverului nu este un mesaj de eroare, atunci anteturile obiectelor conțin informații care pot fi considerate opțiuni de conexiune. De exemplu, antetul Allow listează toate metodele acceptate de server pentru o anumită resursă.

Dacă identificatorul de resursă solicitat este un asterisc (“*”), atunci cererea OPȚIUNI este destinată să se adreseze serverului în întregime.

Dacă ID-ul resursei solicitate nu este un asterisc, atunci solicitarea OPȚIUNI se aplică opțiunilor care sunt disponibile la conectarea la resursa specificată.

Metoda GET vă permite să preluați orice informație legată de resursa solicitată. În cele mai multe cazuri, dacă ID-ul resursei solicitat indică un document (de exemplu, document HTML, document text, grafic, video), atunci serverul returnează conținutul acelui document (conținutul fișierului). Dacă resursa solicitată este o aplicație (program) care generează unele date în timpul funcționării sale, atunci aceste date sunt returnate în corpul mesajului de răspuns, și nu o imagine binară a fișierului executabil. Acesta este folosit, de exemplu, la crearea aplicațiilor CGI.

Dacă identificatorul resursei solicitate indică către un director (director, folder), atunci, în funcție de setările serverului, fie conținutul directorului (lista de fișiere), fie conținutul unuia dintre fișierele aflate în acest director (de obicei index.html sau Default.htm).

Există, de asemenea, un „GET parțial” în care mesajul de solicitare include un antet de solicitare Range.

Un GET parțial solicită ca doar o parte a unui obiect să fie transferată. Metoda GET parțială este concepută pentru a reduce supraîncărcarea inutilă a rețelei prin solicitarea doar a unei părți a unui obiect atunci când o altă parte a fost deja descărcată de client. Valoarea antetului Range este șirul „bytes=" urmat de intervalul de octeți care trebuie recuperați.

Octeții sunt numerotați începând de la 0. Octeții de început și de sfârșit ai intervalului sunt separați printr-un caracter „–”.

Atât octeții de început, cât și de sfârșit din interval pot lipsi. Dacă trebuie să obțineți mai multe intervale, acestea sunt listate separate prin virgule.

Dacă unele dintre intervalele listate se intersectează, serverul le îmbină. Mesajul de răspuns pentru o solicitare GET parțială trebuie să conțină un antet Content-Range care specifică intervalul care trebuie transmis. Dacă serverul trimite mai multe intervale care nu se suprapun, antetul Content-Type ia valoarea specială „multypart/byteranges”.

Corpul mesajului este împărțit în părți separate printr-un separator generat de server și transmis ca parametru de antet Content-Type.

Fiecare parte individuală conține propriile sale anteturi Content-Type și Content-Range, cu o linie goală înainte de conținutul intervalului.

De fapt, funcția îndeplinită de metoda POST este determinată de aplicația la care se indică ID-ul resursei solicitate. Alături de metoda GET, metoda POST este utilizată la crearea aplicațiilor CGI.

Browserul poate emite solicitări cu metoda POST atunci când trimite formulare. Pentru a face acest lucru, elementul FORM al documentului HTML care conține formularul trebuie să aibă un atribut de metodă cu valoarea POST.

O aplicație inițiată de POST poate efectua o acțiune pe server și nu returnează niciun conținut ca rezultat. În funcție de faptul dacă răspunsul include un corp de mesaj care descrie rezultatul sau nu, codul de stare din răspuns poate fi fie 200 (OK) fie 204 (Fără conținut).

Dacă a fost creată resursa de pe server, răspunsul conține un cod de stare 201 (Creat) și include un antet de răspuns Locație.

Corpul mesajului care este trimis într-o cerere PUT este stocat pe server, iar identificatorul resursei solicitate va fi identificatorul documentului stocat. Dacă identificatorul de resurse solicitat indică o resursă deja existentă, atunci obiectul inclus în corpul mesajului este tratat ca o versiune modificată a resursei situate pe server. Dacă a fost creată o nouă resursă, serverul notifică agentul utilizator răspunzând cu codul de stare 201 (Creat).

Diferența dintre metodele POST și PUT este valoarea ID diferită a resursei solicitate. URI-ul din cererea POST identifică resursa care procesează obiectul inclus în corpul mesajului. Această resursă ar putea fi aplicația care primește datele. În schimb, URI-ul dintr-o cerere PUT identifică entitatea inclusă în cerere ca fiind corpul mesajului, adică agentul utilizator atribuie URI-ul dat resursei incluse.

Metoda DELETE solicită serverului să șteargă o resursă care are ID-ul solicitat. O solicitare cu această metodă poate fi respinsă de server dacă utilizatorul nu are drepturi de a șterge resursa solicitată.

Metoda TRACE este utilizată pentru a returna cererea transmisă la nivel de protocol HTTP.

Dacă cererea are succes, răspunsul conține întregul mesaj de solicitare în corpul mesajului de răspuns, iar antetul obiectului Content-Type este „message/http”.

Informații detaliate despre metodele protocolului HTTP/1.1 pot fi găsite în RFC 2068.

După primirea și interpretarea mesajului de solicitare, serverul răspunde cu un mesaj de răspuns HTTP.

Prima linie a răspunsului este linia de stare.

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Acesta constă din versiunea protocolului, un cod de stare numeric, o frază explicativă, separate prin spații și caractere de final de linie:

Versiunea de protocol are aceeași semnificație ca și în cerere.

Elementul Status-Code este un cod întreg din trei cifre (trei cifre) pentru rezultatul înțelegerii și satisfacerii cererii. Motivul-Expresia este o scurtă descriere text a codului de stare. Codul de stare este destinat să fie procesat de software, iar fraza explicativă este destinată utilizatorilor.

Prima cifră a codului de stare determină clasa răspunsului. Ultimele două cifre nu au un rol specific în clasificare.

Există 5 semnificații pentru prima cifră:

1xx: Coduri de informații – cererea primită, procesarea continuă.

2xx: Coduri de succes - acțiunea a fost primită, înțeleasă și procesată cu succes.

3xx: coduri de redirecționare - trebuie luate măsuri suplimentare pentru a finaliza solicitarea.

4xx: coduri de eroare client - cererea are o eroare de sintaxă sau nu poate fi finalizată.

5xx: coduri de eroare server - serverul nu poate finaliza o solicitare validă.

Fraze explicative pentru fiecare cod de stare sunt listate în RFC 2068 și sunt recomandate, dar pot fi înlocuite cu altele echivalente fără restricții de protocol.

De exemplu, în versiunile localizate în limba rusă ale serverelor HTTP, aceste expresii sunt înlocuite cu cele rusești.

În tabel 2 arată codurile de răspuns ale serverului HTTP.

masa 2

Codurile de răspuns ale serverului HTTP

Sintagma explicativă conform

1xx: coduri de informații

Continua

2xx: coduri de succes

Fara continut

Resetați conținutul

Conținut parțial

Conținut parțial

3xx: coduri de redirecționare

Mutat temporar

Mutat temporar

Nemodificat

4xx: coduri de eroare client

Cerere greşită

Neautorizat

Nu a fost găsit

metoda nepermisa

Metoda nepermisa

Solicitare Timeout

Cererea a expirat

Conflict

Lungimea necesară

De exemplu, în versiunile localizate în limba rusă ale serverelor HTTP, aceste expresii sunt înlocuite cu cele rusești.

Lungimea necesară

Entitatea solicitată este prea mare

Internal Server Error

Internal Server Error

Neimplementat

Neimplementat

Serviciu indisponibil

Serviciul nu este disponibil

Versiunea HTTP nu este acceptată

Versiunea HTTP nu este acceptată

Informații detaliate despre codurile de răspuns și anteturile care însoțesc aceste răspunsuri pot fi găsite în RFC 2068.

Linia de stare este urmată de anteturi (general, răspuns și obiect) și, eventual, un corp de mesaj.

Una dintre cele mai importante funcții ale unui server Web este de a oferi acces la o parte a sistemului de fișiere local. Pentru a face acest lucru, în setările serverului este specificat un anumit director, care este directorul rădăcină pentru acest server Web.