Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Programe
  • PHP: Cereri POST și GET pentru începători. Folosind metodele GET și POST

PHP: Cereri POST și GET pentru începători. Folosind metodele GET și POST

Utilizarea metodelor GET și POST în PHP este greu de supraestimat, deoarece aceste metode se găsesc pe aproape fiecare site. Înainte de a studia materialul descris mai jos, vă sfătuiesc să vă familiarizați cu eticheta html

... Să aruncăm o privire la fiecare dintre aceste metode în detaliu.

metoda GET

Metoda GET folosește un șir URL pentru a transmite date. Este posibil să fi observat adrese URL lungi și obscure. De exemplu: function.php? login = Alex & email = dezyakin... În acest caz, datele sunt procesate în function.php. După semnul întrebării „?” Există o enumerare a parametrilor transmisi (parametrul este separat prin semnul „&”) cu valorile: parametrului de autentificare i se atribuie valoarea Alex, iar variabila email este dezyakin. Datele vor fi stocate în matricea superglobală $ _GET. Un exemplu de utilizare a metodei GET este prezentat mai jos:

Autentificare: E-mail: Folosind tabloul superglobal $ _GET, afișăm valorile acceptate:* / echo "
autentificare = ". $ _GET [" autentificare "]; ecou"
email = ". $ _GET [" email "];?>

Observați cum citim valorile din tabloul superglobal $ _GET: $ _GET [„nume_variabilă”]... În exemplul nostru, numele variabilelor au fost declarate sub forma (nume = autentificare și nume = e-mail).

Sfat:
Înainte de a procesa valorile primite, vă sfătuiesc să verificați existența acestora prin intermediul funcțiilor isset (nume_variabilă) sau gol (nume_variabilă)- aceste funcții au fost tratate în lecția anterioară 2: variabile în PHP. De exemplu:

verificarea existenței cu isset: if isset ($ _GET ["login"]) ( operatori care să se ocupe de autentificare ... } //sau verificați existența folosind empty: dacă este gol ($ _GET [„e-mail”]) ( operatori pentru procesarea e-mailului ... } ?>

În formular, puteți specifica numele fișierului care va procesa valorile transmise. Acest lucru se face folosind atributul de acțiune al formularului, căruia i se poate atribui adresa acestui fișier. În mod implicit, acest fișier este alocat fișierului curent (adică procesat în fișierul în care se află formularul). Iată un exemplu în care datele dintr-un formular sunt trimise pentru procesare în fișierul srcipt.php:

Autentificare: E-mail:

Fișierul script.php trebuie să conțină un fel de handler de informații, altfel informațiile vor fi trecute în gol.

Metoda GET are multe dezavantaje:

  • Utilizatorul vede valorile parametrilor trecuți;
  • Utilizatorul poate falsifica cu ușurință parametrii transmisi;
  • Transmiterea neplăcută a informațiilor binare (trebuie să codificați în format text);
  • Cantitatea de date transferate este limitată - 8 Kbytes;

Datorită dezavantajelor de mai sus, metoda GET este utilizată numai în cazurile în care trebuie să transferați o cantitate mică de date, iar aceste date nu sunt secrete în niciun fel.

Metoda POST

Metoda POST diferă de GET prin faptul că datele sunt transmise într-o formă închisă. Există o matrice superglobală $ _POST din care puteți citi date astfel: $ _POST [„nume_variabilă”]... De exemplu:

Autentificare: "> E-mail: ">
Folosind matricea superglobală $ _POST, tipăriți valorile acceptate:* / echo "
autentificare = ". $ _POST [" autentificare "]; ecou"
email = ". $ _POST [" email "];?>

Rezultatul executării codului descris mai sus este prezentat în figura de mai jos:

După cum puteți vedea, adresa URL nu are postscript, dar cu toate acestea datele au fost primite și afișate.

Notă:
1) Volumul valorilor transmise prin metoda POST este limitat implicit și este egal cu 8 MB. Pentru a crește această valoare, trebuie să modificați directiva post_max_size din php.ini.

2) În versiunile anterioare ale PHP, în locul numelor scurte ale matricelor superglobale $ _GET și $ _POST, au fost folosite nume mai lungi: $ HTTP_GET_VARS și $ HTTP_POST_VARS. Acestea sunt dezactivate implicit în php 5, dar le puteți activa în fișierul de configurare php.ini folosind parametrul register_long_arrays. În PHP 6, aceste nume lungi nu vor fi disponibile.

3) Înainte de a procesa variabilele din $ _POST, vă sfătuiesc să verificați variabilele pentru prezența lor, la fel cum s-a făcut cu metoda GET.

Metodele GET și POST în HTTP și HTTPS sunt două dintre cele mai populare metode utilizate pentru a transfera date de la un client la un server folosind protocolul HTTP (Hypertext Transfer Protocol). Atât GET, cât și POST pot fi folosite pentru a trimite o solicitare și a primi un răspuns, dar există o diferență semnificativă între cele două.

Diferența dintre solicitările GET și POST în HTTP sau HTTPS este o întrebare populară în fiecare interviu de programare web. Deoarece HTML este independent de tehnologia serverului web precum Java, ASP sau PHP și HTTP este protocolul principal în spațiul Internet, importanța înțelegerii metodelor GET și POST nu poate fi ignorată în mod clar. În acest articol, ne vom uita la ce este o metodă HTTP GET, ce este o metodă HTTP POST, când să folosiți o anumită solicitare și care este diferența dintre ele. Să analizăm fiecare concept separat.

Ce este HTML?

HTML este limbajul folosit pentru a crea pagini web. Hipertextul se referă la hyperlink-urile pe care le poate conține o pagină HTML. Limbajul de marcare se referă la modul în care etichetele sunt folosite pentru a defini aspectul paginii și elementele de pe pagină.
Mai jos este un exemplu de HTML care este folosit pentru a defini o pagină web de bază cu un titlu și un paragraf de text:



<Голова>
<Название>TechTerms.com

<Тело>

Acesta este un exemplu de paragraf în HTML.

Prima linie definește tipul de conținut conținut în document., și care sunt toate incluse în exemplul de mai sus. Titlul paginii, metadatele și link-urile fișierelor de ancorare sunt plasate între Conținutul real al paginii este între etichete .

Web-ul a trecut prin multe schimbări în ultimele decenii, dar HTML a fost întotdeauna limbajul principal folosit pentru dezvoltarea paginilor web. Interesant, în timp ce site-urile web au devenit mai avansate și mai interactive, HTML a devenit mai simplu. Dacă comparați sursa unei pagini HTML5 cu o pagină similară scrisă în HTML 4.01 sau XHTML 1.0, va fi mai puțin cod în pagina HTML5. Acest lucru se datorează faptului că HTML modern se bazează pe Cascading Style Sheets sau JavaScript pentru a formata aproape toate elementele dintr-o pagină.

Multe site-uri web dinamice generează pagini web din mers, folosind un limbaj de scripting pe partea serverului, cum ar fi PHP sau ASP. Cu toate acestea, chiar și paginile dinamice trebuie formatate folosind HTML. Prin urmare, limbajele de scripting generează adesea HTML care este trimis către browserul web.

Protocolul de transfer hipertext (HTTP) este conceput pentru comunicarea între clienți și servere și funcționează ca un protocol cerere-răspuns.

Browserul web poate fi client, iar aplicația de pe computerul care găzduiește site-ul web poate fi serverul.

Clientul (browserul) trimite o cerere HTTP către server, serverul returnează un răspuns care conține informații despre starea cererii și poate conține, de asemenea, conținutul solicitat.

Două metode de solicitare GET și POST

Două metode frecvent utilizate pentru cerere-răspuns între client și server:

    GET - solicită date de la resursa specificată;

    POST - Trimite date pentru a fi procesate către resursa specificată.

Traducerea GET și POST înseamnă literal obținere și post-procesare.

Mai multe despre HTTP

HTTP este protocolul folosit pentru a transfera date pe Internet. Face parte din pachetul Internet Protocol și definește comenzile și serviciile utilizate pentru a transfera date către o pagină web.

HTTP utilizează modelul server-client. Clientul poate fi un computer de acasă, laptop sau dispozitiv mobil. Un server HTTP este de obicei o gazdă web cu software de server web, cum ar fi Apache sau IIS. Când un utilizator accesează un site web, browserul trimite o solicitare către serverul web corespunzător și răspunde cu un cod de stare HTTP. Dacă URL-ul este valid și conexiunea este furnizată, serverul va trimite pagina web și fișierele asociate către browser.

Codurile de stare HTTP comune includ:

    200 - cerere reușită (pagina web există);

    301 - se deplasează în mod constant (adesea redirecționează către o nouă adresă URL);

    401 - cerere neautorizată (autorizare necesară);

    500 - Eroare internă de server (de multe ori cauzată de o configurație incorectă a serverului).

POST și GET în HTTP

HTTP definește comenzile GET și POST care sunt utilizate pentru a procesa trimiterile de formulare pe site-uri web. Comanda CONNECT este utilizată pentru a facilita o conexiune sigură care este criptată folosind SSL. Conexiunile HTTP criptate au loc prin HTTPS, o extensie HTTP concepută pentru transferuri securizate de date.

Adresele URL care încep cu „http: //” sunt accesibile prin protocoalele standard de transfer hipertext și utilizează implicit portul 80. Adresele URL care încep cu „https: //” sunt accesibile printr-o conexiune HTTPS securizată și folosesc adesea portul 443.

POST

POST este o serie de verificări ale sistemului efectuate de computere și alte dispozitive electronice atunci când sunt pornite. Rezultatele testului pot fi afișate pe ecran, afișate prin LED-uri intermitente sau pur și simplu înregistrate intern. Pe sistemele informatice, operația POST este efectuată la începutul secvenței de pornire. Dacă toate testele trec, restul procesului de pornire va continua automat.

Sistemele de operare Mac și Windows rulează POST de fiecare dată când computerul pornește sau repornește. Scanarea validează hardware-ul și asigură că procesorul, memoria RAM și dispozitivele de stocare funcționează corect. Dacă apare o eroare în timpul POST, procesul de pornire se poate întrerupe sau opri complet, iar monitorul poate afișa un mesaj care spune că erorile POST sunt adesea afișate pe ecranul de informații BIOS. Acestea pot fi scoase ca coduri cripto, cum ar fi „08” sau ca mesaj de sistem, cum ar fi „Eroare de memorie de sistem la compensare”. Pe Mac, erorile POST sunt adesea indicate de elemente grafice simple, cum ar fi o pictogramă de folder spartă care indică că nu a fost găsit niciun dispozitiv de pornire.

Manifestări fizice

În unele cazuri, este posibil ca ecranul computerului să nu pornească chiar înainte de erorile POST. Dacă se întâmplă acest lucru, codurile de eroare pot fi transmise prin LED-uri intermitente sau semnale sonore. De exemplu, un iMac Apple va reda trei tonuri consecutive, va face pauză timp de cinci secunde și apoi va repeta tonurile atunci când este detectată RAM defectuoasă în timpul pornirii. De asemenea, majoritatea computerelor emite un semnal sonor când sunt detectate erori POST, deși fiecare producător folosește propriile coduri.

POST este un termen destul de tehnic pe care numai tehnicienii informatici îl folosesc în mod regulat. Cu toate acestea, este un acronim bun, deoarece vă ajută să înțelegeți mai bine mesajele de eroare care pot apărea pe computere sau alte dispozitive electronice. Dacă computerul nu pornește din cauza unei erori POST, puteți utiliza un alt dispozitiv pentru a găsi semnificația și cauza erorii de pe site-ul web al producătorului. Apoi puteți lua acțiunea corespunzătoare - scoateți modulul de memorie sau reinstalați placa video și apoi reporniți echipamentul.

OBȚINE

POST este, de asemenea, o metodă de transmitere a variabilelor de formular HTML de la o pagină web la alta fără a le afișa în bara de adrese. O metodă alternativă este GET, care adaugă valori la adresa URL. Solicitările HTTP POST oferă date suplimentare de la client (browser) către server în corpul mesajului. În schimb, solicitările GET includ toate datele necesare în adresa URL. Formularele în HTML pot folosi orice metodă specificând metoda = POST sau metoda = GET (implicit) pe element

... Metoda specificată determină modul în care datele formularului sunt trimise la server. Când este utilizată metoda GET, toate datele din formular sunt codificate URL ca parametri șir de interogare. Cu POST, datele formularului apar în corpul mesajului de solicitare HTTP.

Diferențe în depunerea formularelor

Metoda de solicitare POST solicită serverului web să accepte și să stocheze datele incluse în corpul mesajului de solicitare. Folosit adesea la încărcarea unui fișier sau la trimiterea unui formular web completat.

Metoda de solicitare HTTP GET preia informații de pe server. Ca parte a unei solicitări GET, unele date pot fi transmise în șirul de interogare al adresei URL, specificând termenii de căutare, intervalele de date sau alte informații care identifică cererea.

Ca parte a unei cereri POST, o cantitate arbitrară de date de orice tip poate fi trimisă către server în corpul mesajului de solicitare. Câmpul antet dintr-o solicitare POST indică de obicei tipul de media internet al corpului mesajului.

Principala diferență dintre cererile GET și POST este că acestea corespund unor solicitări HTTP diferite, așa cum sunt definite în specificațiile HTTP. Procesul de trimitere a ambelor metode începe în același mod: setul de date formular este creat de browser și apoi codificat în modul indicat de atributul enctype. Pentru METHOD = "POST, atributul enctype poate fi multipart / form-data sau application / x-www-form-urlencoded, în timp ce pentru METHOD =" GET "este declanșat numai prin aplicație / x-www-form-urlencoded. Acest formular datele sunt setate apoi transmise serverului.

Pentru a trimite un formular folosind METHOD = „GET”, browser-ul construiește o adresă URL luând valoarea atributului de acțiune și adăugând acestuia setul de date din formular, codat folosind aplicația / tipul de conținut x-www-form-urlencoded). Browserul tratează apoi acea adresă URL ca și cum s-ar referi la un link (sau ca și cum utilizatorul ar fi introdus URL-ul manual). Browserul împarte URL-ul în bucăți și recunoaște gazda, apoi trimite o solicitare GET acelei gazde cu restul URL-ului ca argument. Este important de reținut că acest proces înseamnă că datele din formular sunt limitate la coduri ASCII. O atenție deosebită trebuie acordată codificării și decodificării altor tipuri de caractere atunci când acestea sunt transmise printr-o adresă URL în format ASCII.

O trimitere a formularului cu METHOD = „POST” face ca o solicitare POST să fie trimisă folosind valoarea atributului acțiune și mesajul generat în funcție de tipul de conținut indicat de atributul enctype.

PHP

PHP este încorporat în HTML. Aceasta înseamnă că codul PHP poate fi inserat într-o pagină HTML. Codul PHP este citit sau analizat de serverul care găzduiește pagina. Ieșirea funcțiilor GET și POST în PHP pe o pagină este de obicei returnată ca HTML care poate fi citit de browser. Deoarece codul PHP este convertit în HTML înainte ca pagina să se încarce, utilizatorii nu pot vedea codul PHP pe pagină. Acest lucru face ca paginile PHP să fie suficiente pentru accesarea bazelor de date și a altor informații protejate.

O mare parte din sintaxa PHP este împrumutată din alte limbaje, cum ar fi C, Java și Perl. Cu toate acestea, PHP are o serie de caracteristici unice și caracteristici speciale. Scopul acestui limbaj este de a permite dezvoltatorilor web să scrie pagini generate dinamic rapid și ușor.

Wordpress

WordPress este un sistem gratuit de gestionare a conținutului folosit pentru a construi și întreține site-uri web. Ușurința de utilizare și caracteristicile unice de blogging au făcut din acesta cel mai popular instrument de blogging de pe internet.

Interfața WordPress permite oricui fără experiență de dezvoltare web să creeze și să publice un site web. Instrumentele de blogging încorporate oferă o modalitate ușoară de a urmări postările individuale, vizitatorii și comentariile utilizatorilor.

Deși există mii de șabloane și plugin-uri WordPress disponibile, sistemul POST GET din WordPress are încă limitările sale. Deoarece acesta este un serviciu bazat pe șablon, utilizatorul ar trebui să înceapă cu un site web pre-construit, mai degrabă decât să creeze pagini de la zero. De asemenea, nu există nicio modalitate de a încorpora scripturi sau de a menține o bază de date cu același nivel de control pe care îl oferă un site web personalizat.

Instrumentul POST_GET_ID () permite scripturilor să manipuleze articolul, deoarece are un ID unic, iar atunci când îl trimit sub formă de formular prin aceste metode, meniul drop-down va fi trimis cu un ID unic care permite scriptului să observe ce postare rulează. Alternativ, poate fi trimisă o variabilă ascunsă care va permite scriptului să vadă ce postare aparține vizualizarii.

Da, da, toată lumea a învățat odată ceva. Singurul lucru care îi distinge pe oameni în această privință este că învățăturile sunt ușoare pentru cineva, în timp ce alții nu își pot da seama de esența problemei timp de multe luni. Astăzi vom vorbi despre solicitările POST și GET în HTML \ PHP.

Cererile POST și GET în sine (denumite în continuare simple cereri) au fost de mult înrădăcinate în toate resursele de pe Internet. Dacă dintr-o dată există o alternativă la aceste tehnologii, atunci probabil că nu va fi curând și, probabil, nu este necesar. Pentru că solicitările noastre îndeplinesc complet sarcina de a schimba date între paginile de internet.

Să ne uităm mai întâi la o solicitare GET. Să creăm un fișier index.php cu un cod html standard și, de asemenea, să plasăm un formular pe el, să fie un formular de comandă de produs.

Aici acordăm atenție etichetei formă... Are doi parametri acțiuneși metodă... Primul este responsabil pentru adresa paginii către care ne vom transfera datele, al doilea este responsabil pentru metoda prin care aceste date vor fi transferate. În interiorul acestei etichete este descris setul de date pe care dorim să le transferăm. Numele sunt atribuite datelor (parametrul Nume). De asemenea, este necesară introducerea tipului Trimite, care este butonul pe care se face clic pentru a trimite date.

Să ne salvăm fișierul și să-l deschidem într-un browser.
Calea paginii noastre în browser este „... / index.php”. Pe pagina însăși, vedem două câmpuri de introducere și un buton. Să adăugăm ceva în câmpurile noastre și să facem clic pe butonul „Comandă”. Pagina noastră a fost actualizată. Să aruncăm o privire la adresa sa: „… / index.php? OrderName = Test & count = 12”. (Am tastat cuvântul „Test” în al doilea „12” din primul câmp). După cum putem vedea, adresa paginii s-a schimbat ușor. Faptul este că transferul parametrilor cu o solicitare GET se realizează prin alocarea acestora la linia de adresă a paginii. Parametrii sunt separați de adresa principală prin „?”, iar parametrii diferiți prin „&”. Structura parametrilor este următoarea: parameter_name = valoare... Numele parametrului se va potrivi cu valoarea atributului nume din câmpul de intrare.
Hai să edităm puțin codul paginii:

> >

Acum să facem clic din nou pe butonul „Comandă”. După cum vedem, pagina a fost actualizată, dar câmpurile noastre au rămas completate. Acest lucru se datorează faptului că am specificat o valoare implicită pentru câmpurile noastre. Mai mult, aceste valori sunt parametrul GET primit. După cum putem vedea în codul PHP, parametrii GET sunt o matrice cu un index de șir egal cu numele parametrului. Dacă acum ne jucăm cu adresa site-ului și schimbăm valorile parametrilor din ea și apăsăm butonul „Enter”, vom observa din nou imaginea cu reîmprospătarea paginii și completând formularul nostru.

Este evident că este greșit (și nu este sigur) să trimiți date secrete sau de serviciu într-o solicitare GET. Este mai bine să-l folosiți pentru a transfera, de exemplu, id-ul știrii, care ar trebui luat de la bază sau numele paginii care ar trebui afișată.

O cerere POST este o altă problemă. Funcționează în același mod, dar nu stochează parametrii în bara de adrese. Să ne schimbăm forma:

$ _POST [„nume comandă”]?> > $ _POST [„număr”]?> >

După cum puteți vedea, însă nu s-au schimbat multe! Să deschidem pagina noastră, să punem ceva în câmpuri și să apăsăm butonul „Comandă”. Totul a funcționat la fel, însă (totuși), după cum vedem în linia de interogare, adresa „... / index.php” se etalează fără niciun fel de parametri. Astfel, ne cam „ascundem” datele de privirile indiscrete. Desigur, conceptul a fost ascuns, mai degrabă arbitrar, deoarece aceste date pot fi încă interceptate, dar asta e altă poveste. Să adăugăm parametrii „… / index.php? OrderName = Trololo & count = 100” la adresa noastră și apăsăm „Enter”. După cum vedem, pagina a fost încărcată, dar deși parametrii au fost trecuți, câmpurile erau goale. Acest lucru sugerează că, în ciuda similitudinii mari, aceste tipuri de solicitări nu se suprapun în niciun fel, iar dacă este nevoie, merită să scrieți un handler pentru fiecare tip de cerere separat.

Cred că este suficient. Elementele de bază ale întrebării, cred, sunt descrise cu capul.

Si inca putin… Nu uitați de verificarea parametrilor trecuți. Dacă știți sigur că parametrul trebuie să fie un număr, atunci întrerupeți toate încercările de a transfera o valoare nenumerică etc.

Acest post are scopul de a explica principiile transferului de date pe Internet folosind două metode principale: GET și POST. Am scris-o ca supliment la instrucțiunile pentru generatorul de lucru în schimburi pentru cei care nu sunt interesați de detalii ☺.

Accesați următoarea adresă (aceasta este pentru explicație vizuală): http://calendarin.net/calendar.php?year=2016 Atenție la bara de adrese a browserului: calendarin.net/calendar.php ?an = 2016 Fișierul principal este denumit, urmat de un semn de întrebare (?) Și de un parametru „an” cu valoarea „2016”. Deci, tot ce urmează semnului de întrebare este o solicitare GET. E simplu. Pentru a trece mai mult de un parametru, dar mai mulți, atunci aceștia trebuie să fie separați printr-un ampersand (&). Exemplu: calendarin.net/calendar.php ? an = 2016 și afișare = zile-lucrătoare-și-zile-libere

Fișierul principal este încă denumit, urmat de un semn de întrebare (?), Apoi - parametrul „an” cu valoarea „2016”, apoi - ampersand (&), apoi - parametrul „afișare” cu valoarea „work -zile-și-zile -libere".

Parametrii GET pot fi modificați direct în bara de adrese a browserului. De exemplu, schimbând valoarea „2016” în „2017” și apăsând tasta, veți merge la calendarul pentru 2017.

Aceasta este transmiterea datelor într-un mod ascuns (adresa paginii nu se schimbă); adica poti vedea ce a fost transmis doar cu ajutorul unui program (script). De exemplu, în următorul instrument de numărare a caracterelor dintr-un text, datele sursă sunt transmise folosind metoda POST: http://usefulonlinetools.com/free/character-counter.php

Dacă aveți întrebări, comentarii și e-mail-ul meu la dispoziția dumneavoastră.

Pe lângă metoda GET, despre care am discutat în postarea anterioară, există o altă metodă de trimitere a unei cereri prin protocolul HTTP - metoda POST. Metoda POST este, de asemenea, foarte des folosită în practică.

Dacă, pentru a accesa serverul folosind metoda GET, a fost suficient să introducem cererea în URL, atunci în metoda POST totul funcționează după un alt principiu.

Pentru a îndeplini acest tip de solicitare, trebuie să facem clic pe butonul cu atributul type = „submit”, care se află pe pagina web. Rețineți că acest buton se află în element

cu atributul de metodă setat la post.

Luați în considerare acest HTML:

Introdu text:


Dacă utilizatorul introduce orice text în câmpul de text și dă clic pe butonul „Trimite”, atunci variabila text cu valoarea conținutului introdus de utilizator va fi trimisă către server.

POST și GET solicitări în termeni simpli

Această variabilă va fi trimisă prin metoda POST.

Dacă scrieți în această formă:

Apoi datele vor fi trimise folosind metoda GET.

Dacă, în cazul unei solicitări GET, cantitatea de date pe care le-am putea transfera a fost limitată de lungimea barei de adrese a browserului, atunci în cazul unei solicitări POST, nu există o astfel de limitare și putem transfera sume semnificative. De informații.

O altă diferență între metoda POST și metoda GET, metoda POST ascunde toate variabilele transmise acesteia și valorile acestora în corpul său (Entity-Body). În cazul metodei GET, acestea au fost stocate în șirul de solicitare (Request-URI).

Iată un exemplu de solicitare POST:

POST / HTTP / 1.0 \ r \ n
Gazdă: www.site.ru \ r \ n
Referer: http://www.site.ru/index.html\r\n
Cookie: venit = 1 \ r \ n
Content-Type: application / x-www-form-urlencoded \ r \ n
Lungimea conținutului: 35 \ r \ n
\ r \ n
autentificare = Dima și parola = 12345

Astfel, prin transmiterea datelor folosind metoda POST, va fi mult mai dificil pentru un atacator să le intercepteze, deoarece sunt ascunse vederii, deci metoda POST este considerată mai sigură.

În plus, metoda POST poate transfera nu numai text, ci și date multimedia (imagini, audio, video). Există un parametru special Content-Type care determină tipul de informații care trebuie transferate.

În cele din urmă, variabila POST este folosită pentru a prelua datele transmise prin această metodă pe server.

Iată un exemplu de procesare în PHP:

echo $ _POST [‘text’];
?>

În ultima postare, am decis că browserul (clientul) trimite cereri HTTP către server, iar serverul trimite răspunsuri HTTP către client. Aceste cereri și răspunsuri sunt procesate conform anumitor reguli. Există, ceva de genul sintaxă, cum și în ce ordine ar trebui scrisă. Trebuie să existe o structură bine definită.

Să aruncăm o privire mai atentă asupra acestei structuri, care este folosită pentru a construi cereri și răspunsuri în protocolul HTTP.

O solicitare HTTP constă din trei părți principale, care vin exact în ordinea prezentată mai jos. Există o linie goală între anteturi și corpul mesajului (ca separator), este un caracter de avans de linie.

Șir gol (separator)

Postați și primiți solicitări, care este diferența dintre ele și care este mai bună și în ce scopuri?

Corpul mesajului (Entity Body) - parametru opțional

Șir de interogare- specifică metoda de transmitere, URL-ul de accesat și versiunea protocolului HTTP.

Titluri- descrie corpul mesajelor, transmite diverși parametri și alte informații și informații.

Conținutul mesajului- acestea sunt datele în sine, care sunt transmise în cerere. Corpul mesajului este un parametru opțional și poate fi omis.

Când primim o solicitare de răspuns de la server, corpul mesajului este cel mai adesea conținutul paginii web. Dar, atunci când facem cereri către server, poate fi uneori prezent și, de exemplu, când transferăm datele pe care le-am completat în formularul de feedback către server.

Mai detaliat, fiecare element al cererii, îl vom lua în considerare în notele următoare.

Să luăm ca exemplu o cerere de server reală. Am evidențiat fiecare parte a cererii cu propria sa culoare: linia de solicitare este verde, anteturile sunt portocalii, corpul mesajului este albastru.

Solicitare din browser:

Gazdă: webgyry.info

Cookie: wp-settings

Conexiune: păstrați-vă în viață

În exemplul următor, corpul mesajului este deja prezent.

Răspunsul serverului:

Content-Type: text / html; set de caractere = UTF-8

Transfer-Codificare: fragmentat

Conexiune: păstrați-vă în viață

Keep-Alive: timeout = 5

X-Pingback: //webgyry.info/xmlrpc.php

document fara titlu

Acestea sunt mesajele care sunt schimbate între client și server prin protocolul HTTP.

Apropo, doriți să știți dacă există vreun sens în vreun element de pe site-ul dvs. folosind „obiectivele” Yandex Metrics și Google Analytics?

Îndepărtați ceea ce NU funcționează, adăugați ceea ce funcționează și dublați rezultatul final.

Un curs despre stabilirea obiectivelor Yandex Metrica ..

Un curs despre stabilirea obiectivelor Google Analytics ..

Clientul HTTP trimite o cerere către server sub forma unui mesaj de solicitare, care are următorul format:

  • Șir de solicitare (obligatoriu)
  • Titlu (element opțional)
  • Șir gol (obligatoriu)
  • Corpul mesajului (opțional)

Să aruncăm o privire la fiecare dintre aceste elemente separat.

Șir de interogare

Șirul de solicitare începe cu un jeton de metodă, urmat de URI-ul cererii și versiunea protocolului. Elementele sunt separate unele de altele prin spații:

Să luăm în considerare acest element mai detaliat.

Metoda de solicitare

Acest element specifică metoda care va fi apelată pe partea de server pe URI-ul specificat.

Există opt metode în HTTP:

  • CAP
    Folosit pentru a obține linia de stare și titlul de la server prin URI. Nu modifică datele.
  • OBȚINE
    Folosit pentru a primi date de la server la URI-ul specificat. Nu modifică datele.
  • POST
    Folosit pentru a trimite date către server (cum ar fi informații despre dezvoltatori etc.) folosind formulare HTML.
  • A PUNE
    Înlocuiește toate datele anterioare de pe resursă cu datele nou încărcate.
  • ȘTERGE
    Îndepărtează toate datele curente de pe resursa specificată de URI.
  • CONECTAȚI
    Stabilește o conexiune tunel la server la URI-ul specificat.
  • OPȚIUNI
    Descrie proprietățile conexiunii pentru resursa specificată.
  • URMĂ
    Furnizează un mesaj care conține o urmărire din spate a locației URI-ului resursei specificate.

Solicitare URI

URI (Uniform Resource Identifier) ​​este identificatorul resursei către care este trimisă cererea. Cel mai comun format URI este prezentat mai jos:

‘*’ utilizat atunci când cererea HTTP nu este specifică unei anumite resurse, ci unui server. Folosit numai atunci când metoda nu trebuie aplicată la resursă. De exemplu,

uri absolută utilizat atunci când se face o solicitare HTTP către un proxy. Proxy-ului i se cere să transmită cererea din memoria cache disponibilă și returnează un răspuns. De exemplu:

calea_asbolutny | o sursă folosit de majoritatea chatso.

Învățați să lucrați cu solicitări GET și POST

Este solicitată o resursă specifică a unui anumit server. De exemplu, un client dorește să obțină o resursă de la server prin portul 80. Adresa resursei este „www.proselyte.net” și trimite următoarea solicitare:

Se solicită câmpuri de antet

Câmpurile de antet permit clientului să transmită serverului informații suplimentare despre cerere și despre sine. Aceste câmpuri acționează ca modificatori de solicitare.

Mai jos este o listă cu cele mai importante câmpuri de antet care pot fi utilizate:

  • Accept-Charset
  • Acceptare-Codare
  • Accept-Limba
  • Autorizare
  • Aştepta
  • Dacă-Match
  • Dacă-Modificat-De vreme ce
  • Dacă-Niciunul-Se potrivește
  • Dacă-Range
  • Dacă-Nemodificat-De vreme ce
  • Gamă
  • Referitor
  • Agent utilizator

Dacă dorim să implementăm propriul nostru client și propriul nostru server web, atunci ne putem crea propriile câmpuri de antet.

Exemplu de solicitare HTTP

Aceasta încheie studiul nostru despre solicitările HTTP.
În următorul articol, ne vom uita la răspunsurile HTTP.

Una dintre modalitățile prin care puteți trimite o solicitare HTTP către server este o solicitare GET. Această metodă este cea mai comună și cel mai adesea solicitările către server sunt făcute folosind ea.

Cel mai simplu mod de a crea o solicitare GET este să tastați adresa URL în bara de adrese a browserului dvs.

Browserul va transmite următoarele informații către server:

GET / HTTP / 1.1
Gazdă: webgyry.info
Agent utilizator: Mozilla / 5.0 (Windows NT 6.1; rv: 18.0) Gecko / 20100101 Firefox / 18.0
Acceptați: text / html, aplicație / xhtml + xml, aplicație / xml; q = 0,9, * / *; q = 0,8
Limba de acceptare: ru-RU, ru; q = 0,8, en-US; q = 0,5, en; q = 0,3
Acceptare-Codificare: gzip, deflate
Cookie: wp-settings
Conexiune: păstrați-vă în viață

Cererea este formată din două părți:

1. linie de cerere

2.anteturi (anteturi de mesaje)

Vă rugăm să rețineți că solicitarea GET nu are un corp de mesaj. Dar, asta nu înseamnă că cu ajutorul lui nu putem transfera nicio informație pe server.

Diferența dintre metodele GET și POST

Acest lucru se poate face folosind parametri speciali GET.

Pentru a adăuga parametri GET la cerere, trebuie să puneți un semn „?” la sfârșitul adresei URL. iar după aceasta, începeți să le întrebați conform următoarei reguli:

parameter_name1 = parameter_value1 & parameter_name2 = parameter_value2 &...

Separatorul dintre parametri este semnul „&”.

De exemplu, dacă dorim să transmitem serverului două valori, numele de utilizator și vârsta lui, atunci acest lucru se poate face cu următoarea linie:

http://site.ru/page.php?name=dima&age=27

Când această interogare este executată, datele intră în așa-numita variabilă de mediu QUERY_STRING, din care pot fi preluate pe server folosind limbajul de programare web de pe partea serverului.

Iată un exemplu despre cum se poate face acest lucru în PHP.

ecou „Numele tău:”. $ _GET [„nume”]. "
»;
ecou „Vârsta ta:”. $ _GET [„vârsta”]. "
»;
?>

Construcția $ _GET [„nume_parametru”] vă permite să afișați valoarea parametrului transmis.

Ca urmare a executării acestui cod în browser, vor fi afișate următoarele:

Numele tău: dima
Varsta ta: 27

de asemenea, facem o cerere către server folosind metoda GET.

HTTP este un protocol de transport hipertext, unul dintre protocoalele stivei TCP/IP. Inițial, protocolul a fost creat pentru a transmite și primi pagini HTML, dar acum este perfect folosit pentru sistemele de informații distribuite. Este unul dintre cele mai utilizate protocoale de pe World Wide Web.

Poza 1

Pe baza unei scheme de cerere/răspuns. Atunci când un client trimite o cerere către server, poate face acest lucru folosind 3 tipuri de solicitări: GET, PUT și POST.

Solicitare GET pentru protocolul HTTP

OBȚINE Este cererea de informații a unui client. Browserul web al clientului trimite un mesaj GET pentru a prelua pagini din acesta. Cererea are două părți:

  • șir de interogare
  • titluri

O cerere GET nu are un corp de date, dar asta nu înseamnă că nu poate transmite nicio dată către server. Folosind parametri speciali din șirul URL, puteți transmite date către server. Semn ? după ce domeniul din URL înseamnă că parametrii vor fi transferați. Figura 2 arată ce fel de informații trimite browserul către server.

Desen - 2

Solicitare protocol HTTP POST și PUT

Aceste două metode sunt implementate pentru a trimite informații către un server web. De exemplu, după ce le completăm folosind formulare web speciale, le trimitem la server folosind metoda POST. PUT, pe de altă parte, încarcă resurse sau date pe un server web (imagine, video).

HTTP nu este un protocol sigur și mesajele POST pot fi interceptate și citite deoarece nu sunt criptate. Pentru securitatea transmiterii datelor prin metoda POST se folosește protocolul HTTPS. Criptează datele și se poate autentifica. De asemenea, implementează cerințe suplimentare pentru trecerea informațiilor între straturile de transport și de aplicare.

Principalele diferențe dintre metodele POST și GET sunt prezentate în Tabelul 1.

Figura 3 arată regulile de bază de urmat atunci când alegeți metoda GET sau POST pentru a face lucrurile pe server.

Top articole similare