Http dohvati parametre. Učenje rada s GET i POST zahtjevima

Moderni web resursi ne samo da pružaju informacije posjetitelju, već i komuniciraju s njim. Za interakciju s korisnikom morate od njega primiti neke informacije. Postoji nekoliko metoda za dobivanje podataka, vrlo uobičajene metode su DOBITI I POST. I sukladno tome u PHP postoji podrška za ove metode prijenosa podataka DOBITI I POST. Pogledajmo kako ove metode funkcioniraju.
GET metoda Podaci GET metoda prosljeđuju se njihovim dodavanjem URL-u skripte koja se poziva za obradu primljenih informacija. Da biste objasnili ovu metodu, upišite URL resursa u adresnu traku preglednika i prvo dodajte upitnik (?), a zatim redak num=10. Na primjer

http://domain.ru/script.php?num=10


Ako imate lokalni poslužitelj, obično će domena biti localhost, a prethodni bi unos izgledao ovako

http://localhost/script.php?num=10


U ovom slučaju, prosljeđujemo parametar num jednak 10. Za dodavanje sljedećih parametara, skripta mora koristiti znak za odvajanje (&), na primjer

http://domain.ru/script.php?num=10&type=new&v=text


U ovom smo slučaju skripti proslijedili tri parametra: num s vrijednošću 10, type s vrijednošću "new" i v s vrijednošću "text".
Da biste dobili ove parametre u skripti, trebate koristiti ugrađeni niz $_GET $_GET["num"], $_GET["type"],$_GET["v"]. Ovi elementi niza će sadržavati vrijednosti proslijeđenih parametara. Da biste demonstrirali ovaj primjer, kreirajte datoteku script.php sa sljedećim sadržajem



Provjera GET metode u PHP-u


echo ($_GET["broj"]."
");
echo ($_GET["vrsta"]."
");
echo ($_GET["v"]);
?>




A sada pozovite ovu datoteku u pregledniku

http://path/script.php?num=10&type=new&v=text


i vidjet ćete proslijeđene parametre u prozoru preglednika. Ali ako pozovete ovu datoteku bez dodatnih parametara http://path/script.php, vidjet ćete pogreške koje će tumač proizvesti PHP, da ne postoje takvi elementi niza $_GET. Provjeri podataka dobivenih od korisnika moglo bi se posvetiti više od jednog članka, pa se u ovom članku neću doticati ove točke.
Kao što vjerojatno razumijete, prisiljavanje korisnika da upisuje podatke u adresnu traku preglednika nije baš dobro i potpuno je nezgodno. Dakle, za primanje podataka od korisnika morate koristiti html obrasce. Napišimo jednostavan html obrazac.


Unesite broj

Imate li PC?

Tvoj komentar:





Da malo komentiram kreiranu formu. Obrasci se kreiraju pomoću oznake obrasca. Polja obrasca kreiraju se pomoću oznaka za unos, odabir, tekstualno polje (možete pročitati više). U oznaci obrasca, atribut akcije specificira URL skripte koja će primiti podatke obrasca. U našem slučaju, naveli smo našu postojeću datoteku script.php. Atribut metode specificira metodu za slanje podataka. Naveli smo metodu DOBITI. Sada znamo u koju datoteku će se podaci obrasca prenijeti i na koji način, preostaje samo smisliti gdje ih tražiti?!
Preglednik će ove podatke obrasca proslijediti web resursu dodavanjem URL-u: prvo će biti upitnik (?), a zatim će parametri biti predstavljeni odvojeni znakom & (&). Naziv parametra bit će preuzet iz atributa name koji mora biti naveden za bilo koje polje obrasca. Vrijednost parametra ovisit će o vrsti polja. Ako je polje tekstualno polje, vrijednost će biti tekst koji je unio korisnik. Ako je polje popis, grupa radio gumba ili potvrdnih okvira, tada će vrijednost parametra biti vrijednost atributa vrijednosti odabranog elementa. Dopustite mi da objasnim koristeći naš obrazac kao primjer. Ako korisnik unese broj 10 u polje za unos, tada će naziv parametra biti num (vrijednost atributa name ulazne oznake), a vrijednost će biti 10 (broj koji je unio korisnik). U skladu s tim, preglednik će generirati par "num=10". Ako korisnik odabere opciju "Yes" s popisa, tada će naziv parametra biti type (vrijednost atributa name oznake za odabir), a vrijednost će biti yes (vrijednost atributa value opcije označiti). U skladu s tim, preglednik će generirati par "type=yes".
Sada ćemo postaviti ovaj obrazac na stranicu forma.php.



Obrazac za prijenos podataka GET i PHP metodama



Unesite broj

Imate li PC?

Tvoj komentar:









Unesite bilo koje vrijednosti u polja obrasca i kliknite gumb "Pošalji". Nakon klika na gumb preglednik će otvoriti drugu stranicu (script.php) te će se u prozoru preglednika prikazati podaci koje ste unijeli. Mislim da je jasno zašto: preglednik će proslijediti podatke skripti script.php, au skripti će ti podaci biti obrađeni i prikazani na ekranu.
POST metoda Sada pogledajmo kako metoda funkcionira POST.
Za slanje podataka pomoću POST trebate koristiti HTML obrasce. Kao što se sjećamo, atribut metode oznake obrasca odgovoran je za način slanja podataka obrasca. Stoga trebate navesti vrijednost POST u atributu metode oznake obrasca. Inače, obrazac može biti isti kao i za GET metodu. Promijenimo našu formu, koju smo već koristili za prijenos podataka metodom GET, za prijenos metodom POST.


Unesite broj

Imate li PC?

Tvoj komentar:





Kao što vidite, obrazac ostaje isti osim atributa metode i akcije. Podaci će sada biti proslijeđeni skripti script_post.php. Postavimo naš obrazac na stranicu forma_post.php.



Obrazac za prijenos podataka POST i PHP metodama



Unesite broj

Imate li PC?

Tvoj komentar:









Sada moramo napisati skriptu koja će obraditi naše podatke obrasca.
Za primanje podataka u skripti korištenjem proslijeđene metode POST potrebno je koristiti ugrađeni niz $_POST. Ključevi ovog niza bit će imena parametara. U našem slučaju trebamo koristiti $_POST["num"], $_POST["type"],$_POST["v"]. Ovi elementi polja će sadržavati vrijednosti prenesenih podataka. Kao što vidite, razlika u odnosu na korištenje GET metode izražena je samo u korištenju niza $_POST. Stoga nam neće biti teško napisati datoteku script_post.php:



Validacija POST metode u PHP-u


echo ($_POST["num"]."
");
echo ($_POST["vrsta"]."
");
odjek ($_POST["v"]);
?>




Sada otvorite datoteku forma_post.php u svom pregledniku. Unesite neke podatke u polja obrasca i kliknite gumb "Pošalji". Vjerojatno ste primijetili razliku između metode POST i metode GET - podaci obrasca nisu se pojavljivali u adresnoj traci preglednika. Podaci po metodi POST ne može se prenijeti kroz adresnu traku preglednika. Ovo je značajna razlika koju treba zapamtiti.
U PHP Bez obzira na to kako su podaci poslani - metodom POST ili metodom GET - podatke možete primiti pomoću polja $_REQUEST. Usporedba metoda GET i POST Kada koristite metodu GET, podaci se prenose dodavanjem URL-u. Tako će biti vidljivi korisniku, što sa sigurnosnog gledišta nije uvijek dobro. Također, maksimalna količina prenesenih podataka ovisit će o pregledniku – o najvećem dopuštenom broju znakova u adresnoj traci preglednika.
Kada koristite POST metodu, podaci neće biti vidljivi korisniku (neće biti prikazani u adresnoj traci preglednika). Samim time su i sigurniji, a samim time i program koji obrađuje te podatke sigurnosno je zaštićeniji. Također, količina prenesenih podataka je praktički neograničena.
Prilikom odabira načina prijenosa podataka morate uzeti u obzir gore navedene značajke i odabrati najprikladniji način.

Klijenti preglednika mogu slati informacije web poslužitelju.

Prije nego što preglednik pošalje informacije, on ih kodira pomoću sheme koja se zove URL kodiranje. U ovoj shemi, parovi ime/vrijednost spojeni su znakovima jednakosti, a različiti parovi odvojeni su znakom &.

Ime1=vrijednost1&ime2=vrijednost2&ime3=vrijednost3

Razmaci se uklanjaju i zamjenjuju znakom +, a svi drugi znakovi koji nisu alfanumerički zamjenjuju se heksadecimalnim vrijednostima. Nakon što je informacija kodirana, šalje se na poslužitelj.

GET metoda

Metoda GET šalje kodirane korisničke informacije pridodane zahtjevu stranice. Jesu li stranice i kodirane informacije odvojene jedna od druge? upitnik.

http://www.test.com/index.htm?name1=value1&name2=value2

  • Metoda GET proizvodi dugačak niz koji se pojavljuje u zapisnicima vašeg poslužitelja u polju "Lokacija" preglednika.
  • Metoda GET ograničena je na slanje samo do 1024 znaka.
  • Nikada nemojte koristiti metodu GET ako imate lozinku ili druge osjetljive podatke za slanje poslužitelju.
  • GET se ne može koristiti za prijenos binarnih podataka, poput slika ili tekstualnih dokumenata, na poslužitelj.
  • Podacima poslanim metodom GET može se pristupiti pomoću varijable okruženja QUERY_STRING.
  • PHP pruža asocijativni niz $_GET za pristup svim poslanim informacijama koristeći GET metodu.

if($_GET["name"] || $_GET["age"]) ( echo "Dobrodošli ". $_GET["name"]; echo "Vi ste ". $_GET["age"]. " godina "; Izlaz(); )

Ime: Dob:

POST metoda

metoda POST prenosi informacije putem HTTP zaglavlja. Informacije su kodirane kako je opisano u slučaju metode DOBITI, i postavljeno u zaglavlje QUERY_STRING.

  • Metoda POST nema ograničenja u veličini podataka koje je potrebno poslati.
  • Metoda POST može se koristiti za slanje ASCII kao i binarnih podataka.
  • Podaci poslani metodom POST prolaze kroz HTTP zaglavlje, tako da sigurnost ovisi o HTTP protokolu. Korištenjem Secure HTTP-a možete osigurati da su vaši podaci sigurni.
  • PHP pruža asocijativni niz $_POST za pristup svim informacijama poslanim metodom POST.

Isprobajte sljedeći primjer postavljanjem izvornog koda u skriptu test.php.

if($_POST["name"] || $_POST["age"]) ( if (preg_match("[^A-Za-z"-]",$_POST["name"])) ( die (" nevažeće ime i ime treba biti alfa"); ) echo "Dobrodošli ". $_POST["ime"]; echo "Imate ". $_POST["age"]. " godina."; exit(); )

Ime: Dob:

$_REQUEST varijabla

PHP varijabla $_REQUEST sadrži sadržaje poput $_GET, $_POST, dakle $_COOKIE. Raspravljat ćemo o varijabli $_COOKIE kada govorimo o kolačićima.

PHP $_REQUEST varijabla može se koristiti za dohvaćanje rezultata iz podataka obrasca dostavljenih pomoću metoda GET i POST.

Metode GET i POST u HTTP-u i HTTPS dvije su najpopularnije metode koje se koriste za prijenos podataka s klijenta na poslužitelj pomoću HTTP-a (HyperText Transfer Protocol). I GET i POST mogu se koristiti za slanje zahtjeva i primanje odgovora, ali postoje značajne razlike između njih.

Razlika između GET i POST zahtjeva u HTTP-u ili HTTPS-u popularno je pitanje na svakom intervjuu za web programiranje. Budući da je HTML neovisan o tehnologiji web poslužitelja kao što su Java, ASP ili PHP, a HTTP je glavni protokol u internetskom prostoru, ne može se zanemariti važnost razumijevanja metoda GET i POST. U ovom članku ćemo pogledati što je HTTP GET metoda, što je HTTP POST metoda, kada koristiti svaki zahtjev i koja je razlika između njih. Pogledajmo svaki koncept zasebno.

Što je HTML?

HTML je jezik koji se koristi za izradu web stranica. Hipertekst se odnosi na hiperveze koje HTML stranica može sadržavati. Označni jezik odnosi se na način na koji se oznake koriste za definiranje izgleda stranice i elemenata na stranici.
Dolje je primjer HTML-a koji se koristi za definiranje osnovne web stranice s naslovom i jednim odlomkom teksta:



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

<Тело>

Ovo je primjer odlomka u HTML-u.

Prvi redak specificira vrstu sadržaja sadržanog u dokumentu., I , koji su svi uključeni u gornji primjer. Naslov stranice, metapodaci i veze na sidrene datoteke smješteni su između stvarnog sadržaja stranice smještenog između oznaka .

Web je prošao kroz mnoge promjene u posljednjih nekoliko desetljeća, ali HTML je uvijek bio primarni jezik koji se koristio za razvoj web stranica. Zanimljivo, dok su web stranice postale naprednije i interaktivnije, HTML je postao jednostavniji. Ako usporedite izvor HTML5 stranice sa sličnom stranicom napisanom u HTML 4.01 ili XHTML 1.0, HTML5 stranica će imati manje koda. To je zato što se moderni HTML oslanja na Cascading Style Sheets ili JavaScript za formatiranje gotovo svih elemenata unutar stranice.

Mnoga dinamička web-mjesta generiraju web-stranice u hodu koristeći skriptni jezik na strani poslužitelja kao što je PHP ili ASP. Međutim, čak i dinamičke stranice moraju biti oblikovane pomoću HTML-a. Stoga skriptni jezici često generiraju HTML kod koji se šalje web pregledniku.

HTTP Hypertext Transfer Protocol dizajniran je za komunikaciju između klijenata i poslužitelja i radi kao protokol zahtjev-odgovor.

Web preglednik može biti klijent, a aplikacija na računalu na kojem se nalazi web stranica može biti poslužitelj.

Klijent (preglednik) šalje HTTP zahtjev poslužitelju, poslužitelj vraća odgovor koji sadrži podatke o statusu zahtjeva, a može sadržavati i traženi sadržaj.

Dvije metode zahtjeva GET i POST

Dvije najčešće korištene metode za zahtjev-odgovor između klijenta i poslužitelja su:

    GET - traži podatke iz navedenog izvora;

    POST - šalje podatke za obradu navedenom resursu.

Prijevod GET i POST doslovno znači primanje i naknadna obrada.

Više o HTTP-u

HTTP je protokol koji se koristi za prijenos podataka putem Interneta. Dio je paketa internetskih protokola i definira naredbe i usluge koje se koriste za prijenos podataka web stranice.

HTTP koristi model poslužitelj-klijent. Klijent može biti kućno računalo, prijenosno računalo ili mobilni uređaj. HTTP poslužitelj obično je web host koji pokreće softver web poslužitelja kao što je Apache ili IIS. Kada korisnik pristupi web stranici, preglednik šalje zahtjev odgovarajućem web poslužitelju i odgovara HTTP statusnim kodom. Ako je URL ispravan i veza je odobrena, poslužitelj će poslati web stranicu i pridružene datoteke pregledniku.

Uobičajeni HTTP statusni kodovi uključuju:

    200 - uspješan zahtjev (web stranica postoji);

    301 - Stalno se pomiče (često preusmjerava na novi URL);

    401 — neovlašteni zahtjev (potrebna autorizacija);

    500 - interna pogreška poslužitelja (često uzrokovana netočnom konfiguracijom poslužitelja).

POST i GET u HTTP-u

HTTP definira naredbe GET i POST koje se koriste za obradu podnošenja obrazaca na web stranicama. Naredba CONNECT koristi se za omogućavanje sigurne veze koja je šifrirana pomoću SSL-a. Šifrirane HTTP veze odvijaju se preko HTTPS-a, proširenja HTTP-a dizajniranog za siguran prijenos podataka.

URL-ovi koji počinju s "http://" dostupni su putem standardnih protokola za prijenos hiperteksta i prema zadanim postavkama koriste priključak 80. URL-ovi koji počinju s "https://" dostupni su putem sigurne HTTPS veze i često koriste priključak 443.

POST

POST je niz testova sustava koje izvode računala i drugi elektronički uređaji kada su uključeni. Rezultati testa mogu se prikazati na ekranu, prikazati putem treptajućih LED dioda ili jednostavno interno zabilježiti. U računalnim sustavima, POST operacija se izvodi na početku sekvence pokretanja. Ako svi testovi prođu, ostatak procesa pokretanja nastavit će se automatski.

Operativni sustavi Mac i Windows uređaja pokreću POST svaki put kada se računalo podigne ili ponovno pokrene. Skeniranjem se provjerava hardver i osigurava da procesor, RAM i uređaji za pohranu ispravno rade. Ako se tijekom POST-a pojavi pogreška, proces pokretanja se može zaustaviti ili potpuno zaustaviti, a na monitoru se može pojaviti poruka.Na osobnim računalima se POST pogreške često pojavljuju na zaslonu s informacijama o BIOS-u. Mogu se pojaviti kao kriptografski kodovi poput "08" ili kao poruka sustava poput "Pogreška pomaka memorije sustava". Na Macu, pogreške POST-a često su označene jednostavnom grafikom, kao što je ikona pokvarene mape, što označava da uređaj za pokretanje nije pronađen.

Fizičke manifestacije

U nekim se slučajevima zaslon računala možda neće ni uključiti prije POST pogreške. Ako se to dogodi, kodovi grešaka mogu se prikazati treptajućim LED diodama ili zvučnim signalima. Na primjer, Apple iMac će reproducirati tri uzastopna tona, pauzirati pet sekundi, a zatim ponoviti tonove kada se tijekom pokretanja otkrije loš RAM. Većina osobnih računala također se oglašava zvučnim signalom kada se otkriju pogreške POST-a, iako svaki proizvođač koristi vlastite kodove.

POST je prilično tehnički izraz koji samo računalni tehničari redovito koriste. Međutim, to je dobar akronim jer vam pomaže da bolje razumijete poruke o pogreškama koje se mogu pojaviti na računalima ili drugim elektroničkim uređajima. Ako se vaše računalo ne pokreće zbog POST pogreške, možete upotrijebiti drugi uređaj da pronađete značenje i uzrok pogreške na web stranici proizvođača. Tada možete poduzeti odgovarajuću radnju - ukloniti memorijski modul ili ponovno instalirati video karticu, a zatim ponovno pokrenuti opremu.

DOBITI

POST je također metoda prosljeđivanja varijabli HTML obrasca s jedne web stranice na drugu bez njihovog prikazivanja u adresnoj traci. Alternativna metoda je GET, koja dodaje vrijednosti URL-u. HTTP POST zahtjevi pružaju dodatne podatke od klijenta (preglednika) do poslužitelja u tijelu poruke. Nasuprot tome, GET zahtjevi uključuju sve potrebne podatke u URL-u. Obrasci u HTML-u mogu koristiti bilo koju metodu određivanjem method=POST ili method=GET (zadano) na elementu

. Navedena metoda određuje kako se podaci obrasca šalju na poslužitelj. Kada se koristi metoda GET, svi podaci obrasca kodirani su u URL kao parametri niza upita. S POST-om se podaci obrasca pojavljuju u tijelu poruke HTTP zahtjeva.

Razlike u prezentaciji oblika

Metoda POST zahtjeva traži od web poslužitelja da prihvati i pohrani podatke priložene u tijelu poruke zahtjeva. Često se koristi prilikom učitavanja datoteke ili slanja ispunjenog web obrasca.

Metoda HTTP GET zahtjeva dohvaća informacije s poslužitelja. Kao dio GET zahtjeva, neki podaci mogu biti proslijeđeni u nizu upita URL-a, navodeći pojmove za pretraživanje, raspone datuma ili druge informacije koje određuju zahtjev.

Kao dio POST zahtjeva, proizvoljna količina podataka bilo koje vrste može se poslati poslužitelju u tijelu poruke zahtjeva. Polje zaglavlja u POST zahtjevu obično označava vrstu internetskog medija tijela poruke.

Glavna razlika između GET i POST zahtjeva je ta što odgovaraju različitim HTTP zahtjevima kako je definirano u HTTP specifikacijama. Proces podnošenja za obje metode počinje na isti način: skup podataka obrasca kreira preglednik, a zatim se kodira na način naveden atributom enctype. Za METHOD="POST" atribut enctype može biti multipart/form-data ili application/x-www-form-urlencoded, dok se za METHOD="GET" pokreće samo putem application/x-www-form-urlencoded. Ovo podaci obrasca se postavljaju i šalju na poslužitelj.

Za slanje obrasca koristeći METHOD="GET", preglednik konstruira URL uzimajući vrijednost atributa akcije i dodajući ga skupu podataka obrasca, kodiranog pomoću vrste sadržaja application/x-www-form-urlencoded). Preglednik tada tretira ovaj URL kao da povezuje na vezu (ili kao da je korisnik ručno upisao URL). Preglednik dijeli URL na dijelove i prepoznaje host, zatim šalje GET zahtjev tom hostu s ostatkom URL-a kao argumentom. Važno je napomenuti da ovaj proces znači da su ti oblici ograničeni na ASCII kodove. Posebnu pozornost treba obratiti na kodiranje i dekodiranje drugih vrsta znakova kada ih prosljeđujete ASCII URL-u.

Slanje obrasca s METHOD="POST" uzrokuje slanje POST zahtjeva korištenjem vrijednosti atributa akcije i poruke generirane u skladu s vrstom sadržaja određenom atributom enctype.

PHP

PHP je ugrađen u HTML. To znači da se PHP kod može umetnuti u HTML stranicu. PHP kod čita ili analizira poslužitelj koji hostira stranicu. Izlaz funkcija GET i POST u PHP-u na stranici obično se vraća kao HTML kod koji preglednik može pročitati. Budući da se PHP kôd pretvara u HTML prije učitavanja stranice, korisnici ne mogu vidjeti PHP kôd na stranici. Zbog toga su PHP stranice dovoljne za pristup bazama podataka i drugim sigurnim informacijama.

Velik dio PHP sintakse je posuđen iz drugih jezika kao što su C, Java i Perl. Međutim, PHP ima niz jedinstvenih značajki i posebnih značajki. Svrha ovog jezika je omogućiti web programerima brzo i jednostavno pisanje dinamički generiranih stranica.

Wordpress

WordPress je besplatni sustav za upravljanje sadržajem koji se koristi za izradu i održavanje web stranica. Njegova jednostavnost korištenja i jedinstvene značajke bloganja pomogle su mu da postane najpopularniji alat za bloganje na Internetu.

WordPress sučelje omogućuje svakome tko nema iskustva u web razvoju stvaranje i objavljivanje web stranice. Ugrađeni alati za bloganje omogućuju jednostavan način praćenja pojedinačnih postova, posjetitelja i komentara korisnika.

Iako su dostupne tisuće WordPress predložaka i dodataka, POST GET sustav u WordPressu i dalje ima svoja ograničenja. Budući da se radi o usluzi temeljenoj na predlošku, korisnik mora započeti s unaprijed izgrađenom web stranicom umjesto da stvara stranice od nule. Osim toga, ne postoji mogućnost umetanja skripti ili održavanja baze podataka s istom razinom kontrole koju nudi prilagođeno web mjesto.

Alat POST_GET_ID() omogućuje skriptama da manipuliraju stavkom budući da ima jedinstveni ID, a kada je pošaljete kao obrazac putem ovih metoda, padajući će izbornik biti poslan s jedinstvenim ID-om koji omogućuje skripti da primijeti koja je objava pokrenuta. Alternativno, može se poslati skrivena varijabla koja bi omogućila skripti da vidi koji post pripada pregledu.

Ovaj post ima za cilj objasniti principe prijenosa podataka na Internetu koristeći dvije glavne metode: GET i POST. Napisao sam ga kao dodatak uputama za generator rasporeda smjena za one koje detalji vjerojatno neće zanimati ☺.

Idite na sljedeću adresu (ovo je za vizualno objašnjenje): http://calendarin.net/calendar.php?year=2016 Obratite pozornost na adresnu traku preglednika: calendarin.net/calendar.php ?godina=2016 Glavna datoteka ima naziv nakon kojeg slijedi upitnik (?) i parametar "godina" s vrijednošću "2016". Dakle, sve što slijedi iza upitnika je GET zahtjev. Jednostavno je. Za prosljeđivanje više od jednog parametra, oni moraju biti odvojeni znakom & (&). Primjer: calendarin.net/calendar.php ?year=2016&display=radni-i-slobodni dani

Glavna datoteka i dalje ima naziv, nakon čega slijedi upitnik (?), zatim parametar "godina" s vrijednošću "2016", zatim znak & (&), zatim parametar "prikaz" s vrijednošću "radni dani- i-dani” -off".

GET parametri mogu se mijenjati izravno u adresnoj traci preglednika. Na primjer, promjena vrijednosti "2016" u "2017" i pritisak na tipku odvest će vas na kalendar za 2017. godinu.

Ovo je skriveni prijenos podataka (adresa stranice se ne mijenja); odnosno možete vidjeti samo ono što je preneseno pomoću programa (skripte). Na primjer, u sljedećem alatu za brojanje znakova u tekstu, izvorni podaci se prenose metodom POST: http://usefulonlinetools.com/free/character-counter.php

Ako imate bilo kakvih pitanja, komentara i moja e-pošta stoji vam na usluzi.

Osim GET metode, o kojoj smo govorili u prethodnom postu, postoji još jedna metoda za slanje zahtjeva putem HTTP protokola - POST metoda. POST metoda se također vrlo često koristi u praksi.

Ako smo, da bismo kontaktirali poslužitelj koristeći GET metodu, morali samo upisati zahtjev u URL, onda u POST metodi sve radi na drugom principu.

Za izvršenje ovog tipa zahtjeva potrebno je kliknuti na gumb s atributom type="submit" koji se nalazi na web stranici. Imajte na umu da se ovaj gumb nalazi u elementu , koji ima atribut metode postavljen na post.

Razmotrite ovaj HTML kod:

Unesite tekst:


Ako korisnik u tekstualno polje unese tekst i klikne na gumb “Pošalji”, tekstualna varijabla će biti poslana na poslužitelj s vrijednošću sadržaja koji je korisnik unio.

POST i GET zahtjevi jednostavnim riječima

Ova varijabla bit će poslana metodom POST.

Ako ovo napišete u obliku:

Tada će podaci biti poslani metodom GET.

Ako je u slučaju GET zahtjeva količina podataka koju smo mogli prenijeti bila ograničena duljinom adresne trake preglednika, tada u slučaju POST zahtjeva nema tog ograničenja i možemo prenijeti značajne količine informacija.

Još jedna razlika između POST metode i GET metode je ta što POST metoda skriva sve varijable koje prosljeđuje i njihove vrijednosti u svom tijelu (Entity-Body). U slučaju GET metode, oni su pohranjeni u nizu zahtjeva (Request-URI).

Evo primjera zahtjeva napravljenog metodom POST:

POST / HTTP/1.0\r\n
Domaćin: www.site.ru\r\n
Preporuka: http://www.site.ru/index.html\r\n
Kolačić: prihod=1\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Dužina sadržaja: 35\r\n
\r\n
prijava=Dima&lozinka=12345

Dakle, prijenosom podataka POST metodom, napadaču će biti puno teže presresti ih jer skriveni su od izravnog pogleda pa se POST način prijenosa podataka smatra sigurnijim načinom.

Osim toga, koristeći POST metodu možete prenijeti ne samo tekst, već i multimedijske podatke (slike, audio, video). Postoji poseban parametar Content-Type koji određuje vrstu informacija koje je potrebno prenijeti.

I na kraju, da bi se podaci koji su poslani ovom metodom primili na poslužitelj, koristi se POST varijabla.

Evo primjera obrade u PHP-u:

echo $_POST['tekst'];
?>

U prošlom postu odlučili smo da preglednik (klijent) šalje HTTP zahtjeve poslužitelju, a poslužitelj šalje HTTP odgovore klijentu. Ovi zahtjevi i odgovori oblikovani su prema određenim pravilima. Postoji nešto poput sintakse, kako i kojim redoslijedom treba pisati. Mora postojati strogo definirana struktura.

Pogledajmo pobliže ovu strukturu po kojoj su zahtjevi i odgovori izgrađeni u HTTP protokolu.

HTTP zahtjev sastoji se od tri glavna dijela, koji se pojavljuju dolje navedenim redoslijedom. Između zaglavlja i tijela poruke nalazi se prazan redak (kao separator), koji predstavlja znak za novi redak.

Prazan niz (razdjelnik)

Post and Get requests, koja je razlika između njih i koji je bolji i za koje namjene?

tijelo poruke (Entity Body) – izborni parametar

Niz upita– navodi način prijenosa, URL kojem se pristupa i verziju HTTP protokola.

Naslovi– opisuju tijelo poruka, prenose različite parametre i druge podatke i informacije.

tijelo poruke- to su sami podaci koji se prenose u zahtjevu. Tijelo poruke je izborni parametar i može nedostajati.

Kada primimo zahtjev za odgovor od poslužitelja, tijelo poruke je najčešće sadržaj web stranice. No, prilikom postavljanja zahtjeva prema poslužitelju, također ponekad može biti prisutan, na primjer, kada podatke koje smo ispunili u obrascu za povratne informacije prenosimo na poslužitelj.

Detaljnije ćemo razmotriti svaki element zahtjeva u sljedećim bilješkama.

Uzmimo, na primjer, jedan pravi zahtjev poslužitelju. Svaki dio zahtjeva sam označio različitom bojom: linija zahtjeva je zelena, zaglavlja su narančasta, a tijelo poruke plavo.

Zahtjev preglednika:

Domaćin: webgyry.info

Kolačić: wp-postavke

Veza: Keep-alive

U sljedećem primjeru tijelo poruke već postoji.

Odgovor poslužitelja:

Vrsta sadržaja: tekst/html; skup znakova=UTF-8

Transfer-Encoding: chunked

Veza: Keep-alive

Keep-Alive: timeout=5

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

Neimenovani dokument

To su poruke koje se razmjenjuju između klijenta i poslužitelja putem HTTP-a.

Usput, želite li saznati ima li smisla neki element na vašoj web stranici koristeći "ciljeve" Yandex Metrics i Google Analytics?

Uklonite ono što ne radi, dodajte ono što radi i udvostručite prihod.

Tečaj o postavljanju ciljeva Yandex Metrice..

Tečaj o postavljanju Google Analytics ciljeva..

HTTP klijent šalje zahtjev poslužitelju u obliku poruke zahtjeva, koja ima sljedeći format:

  • Niz upita (obavezno)
  • Naslov (neobavezni element)
  • Prazan niz (obavezno)
  • Tijelo poruke (neobavezni element)

Pogledajmo svaki od ovih elemenata zasebno.

Niz upita

Redak zahtjeva počinje tokenom metode, nakon čega slijedi URI zahtjeva i verzija protokola. Elementi su međusobno odvojeni razmacima:

Pogledajmo ovaj element detaljnije.

Metoda zahtjeva

Ovaj element specificira metodu koja bi se trebala pozvati na strani poslužitelja na navedenom URI-ju.

Postoji osam metoda u HTTP-u:

  • GLAVA
    Koristi se za dobivanje statusa i niza zaglavlja s poslužitelja prema URI-ju. Ne mijenja podatke.
  • DOBITI
    Koristi se za primanje podataka s poslužitelja na navedenom URI-ju. Ne mijenja podatke.
  • POST
    Koristi se za slanje podataka na poslužitelj (kao što su informacije o razvojnom programeru itd.) pomoću HTML obrazaca.
  • STAVITI
    Zamjenjuje sve prethodne podatke na resursu novim učitanim podacima.
  • IZBRISATI
    Briše sve trenutne podatke o resursu određenom URI-jem.
  • SPOJITI
    Uspostavlja tunelsku vezu s poslužiteljem na navedenom URI-ju.
  • OPCIJE
    Opisuje svojstva veze za navedeni resurs.
  • TRAG
    Pruža poruku koja sadrži povratni trag lokacije resursa navedenog u URI-ju.

URI zahtjeva

URI (Uniform Resource Identifier) ​​​​je identifikator resursa na koji se šalje zahtjev. Sljedeći je najčešće korišteni URI format:

‘*’ koristi se kada se HTTP zahtjev ne odnosi na određeni resurs, već na poslužitelj. Koristi se samo kada se metoda ne mora primijeniti na resurs. Na primjer,

apsolutniURI koristi se kada se HTTP zahtjev postavi na proxy. Od proxyja se traži da proslijedi zahtjev iz dostupne predmemorije i vraća odgovor. Na primjer:

apsolutni_put | izvor najčešće korišteni.

Učenje rada s GET i POST zahtjevima

Zahtijeva se određeni resurs na određenom poslužitelju. Na primjer, klijent želi primiti resurs od poslužitelja preko porta 80. Adresa resursa je “www.proselyte.net” i šalje sljedeći zahtjev:

Polja zaglavlja upita

Polja zaglavlja omogućuju klijentu da poslužitelju proslijedi dodatne informacije o zahtjevu i sebi. Ova polja djeluju kao modifikatori upita.

Ispod je popis najvažnijih polja zaglavlja koja se mogu koristiti:

  • Prihvati skup znakova
  • Prihvati-Kodiranje
  • Prihvati-Jezik
  • Autorizacija
  • Očekivati
  • Ako-podudaranje
  • Ako-Modificirano-Od
  • Ako-nema-podudaranja
  • Ako-raspon
  • Ako-Nemodificirano-Od
  • Raspon
  • Preporuka
  • Korisnički agent

Ako želimo implementirati vlastiti klijent i vlastiti web poslužitelj, tada možemo kreirati vlastita polja zaglavlja.

Primjer HTTP zahtjeva

Ovo zaključuje našu studiju HTTP zahtjeva.
U sljedećem članku ćemo pogledati HTTP odgovore.

Jedan od načina na koji možete poslati HTTP zahtjev poslužitelju je metoda GET. Ova metoda je najčešća i zahtjevi prema poslužitelju najčešće se javljaju pomoću nje.

Najlakši način za izradu GET zahtjeva je da upišete URL u adresnu traku svog preglednika.

Preglednik će poslužitelju poslati otprilike sljedeće informacije:

GET / HTTP/1.1
Domaćin: webgyry.info
Korisnički agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
Prihvati: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Jezik prihvaćanja: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Kolačić: wp-postavke
Veza: Keep-alive

Zahtjev se sastoji iz dva dijela:

1. Linija zahtjeva

2. Zaglavlja poruka

Imajte na umu da GET zahtjev nema tijelo poruke. Ali to ne znači da uz njegovu pomoć ne možemo prenijeti nikakve informacije na poslužitelj.

Razlika između GET i POST metoda

To se može učiniti pomoću posebnih GET parametara.

Da biste zahtjevu dodali GET parametre, trebate dodati “?” na kraju URL-a. a nakon toga ih počnite pitati prema sljedećem pravilu:

naziv_parametra1=vrijednost_parametra1& naziv_parametra2=vrijednost_parametra2&…

Razdjelnik između parametara je znak “&”.

Na primjer, ako želimo prenijeti dvije vrijednosti na poslužitelj, korisničko ime i njegovu dob, to se može učiniti pomoću sljedećeg retka:

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

Kada se ovaj zahtjev izvrši, podaci završavaju u takozvanoj varijabli okoline QUERY_STRING, iz koje se mogu dohvatiti na poslužitelju pomoću web programskog jezika na strani poslužitelja.

Evo primjera kako se to može učiniti u PHP-u.

echo "Vaše ime: " . $_GET["ime"] . "
»;
echo "Vaše godine: " . $_GET["dob"] . "
»;
?>

Konstrukcija $_GET[“parameter_name”] omogućuje prikaz vrijednosti proslijeđenog parametra.

Kao rezultat izvršavanja ovog koda u pregledniku, prikazat će se sljedeće:

Vaše ime: dima
Vaše godine: 27

Također postavljamo zahtjev poslužitelju koristeći GET metodu.