Razlika između zahtjeva za preuzimanje. GET or POST: šta odabrati? Prenošenje varijabli korištenjem GET metode

Prva metoda za izvođenje PHP POST zahtjeva je korištenje file_get_contents. Druga metoda će koristiti fread u kombinaciji s nekoliko drugih funkcija. Obje opcije koriste funkciju stream_context_create da popune potrebna polja zaglavlja zahtjeva.

Objašnjenje koda

Varijabla $sPD sadrži podatke za prijenos. Mora biti u HTTP formatu stringa zahtjeva, tako da neki posebni znakovi moraju biti kodirani.

I u funkciji file_get_contents i u funkciji fread imamo dva nova parametra. Prvi je use_include_path. Budući da pravimo HTTP zahtjev, on će biti lažan u oba primjera. Kada je postavljeno na true za čitanje lokalnog resursa, funkcija će tražiti datoteku na include_path.

Drugi parametar je kontekst, koji je popunjen povratnom vrijednošću stream_context_create, koji uzima vrijednost $aHTTP niza.

Korištenje file_get_contents za izradu POST zahtjeva

Da pošaljete POST zahtjev koristeći file_get_contents u PHP-u, trebate koristiti stream_context_create da ručno popunite polja zaglavlja i odredite koji "wrapper" koristiti - u ovom slučaju HTTP:

$sURL = "http://brugbart.com/Examples/http-post.php"; // POST URL $sPD = "name=Jacob&bench=150"; // POST podaci $aHTTP = array("http" => // Omot koji će se koristiti array("method" => "POST", // Metoda zahtjeva // Zaglavlja zahtjeva su postavljena ispod "header" => "Sadržaj - tip: application/x-www-form-urlencoded", "content" => $sPD)); $context = stream_context_create($aHTTP); $contents = file_get_contents($sURL, false, $context); echo $contents;

Korištenje fread-a za izvođenje POST zahtjeva

Možete koristiti funkciju fread za izradu POST zahtjeva. Sljedeći primjer koristi stream_context_create za sastavljanje potrebnih zaglavlja HTTP zahtjeva:

$sURL = "http://brugbart.com/Examples/http-post.php"; // POST URL $sPD = "name=Jacob&bench=150"; // POST podaci $aHTTP = array("http" => // Omot koji će se koristiti array("method" => "POST", // Metoda zahtjeva // Zaglavlja zahtjeva su postavljena ispod "header" => "Sadržaj - tip: application/x-www-form-urlencoded", "content" => $sPD)); $context = stream_context_create($aHTTP); $handle = fopen($sURL, "r", false, $context); $contents = ""; while (!feof($handle)) ( $contents .= fread($handle, 8192); ) fclose($handle); echo $contents;

Izrada GET zahtjeva sa PHP-om

Sada ćemo se fokusirati na korištenje fread-a i file_get_contents-a za preuzimanje sadržaja s interneta putem HTTP-a i HTTPS-a. Da biste koristili metode opisane u ovom članku, morate omogućiti opciju fopen wrappers. Da biste to uradili, potrebno je da postavite parametar allow_url_fopen na On u php.ini datoteci.

Izvođenje POST i GET zahtjeva u PHP-u koristi se za prijavu na web stranice, preuzimanje sadržaja web stranica ili provjeru novih verzija aplikacija. Pokrićemo kako napraviti jednostavne HTTP zahtjeve.

Korišćenje fread-a za preuzimanje ili primanje datoteka preko Interneta

Zapamtite da je čitanje web stranice ograničeno na pristupačni dio paketa. Dakle, trebate koristiti funkciju stream_get_contents ( slično file_get_contents) ili while petlja da pročitate sadržaj u manjim komadima dok se ne dostigne kraj datoteke:

U ovom slučaju obrade PHP POST zahtjeva, posljednji argument funkcije fread jednak je veličini fragmenta. Generalno ne bi trebao biti veći od 8192 ( 8*1024 ).

Imajte na umu da može biti veći ili manji, a može biti i ograničen postavkama sistema na kojem PHP radi.

Korištenje file_get_contents za dobivanje URL-a stranice

Još je lakše koristiti ovu metodu kada čitate datoteku preko HTTP-a, jer ne morate da brinete o čitanju u komadima - sve se rukuje u PHP-u.

Ova publikacija je prijevod članka “Izrada POST zahtjeva pomoću PHP-a”, koji je pripremio prijateljski projektni tim

Danas se najčešće koriste samo dvije HTTP metode: GET i POST. Ali pokazalo se da čak i među ova dva „bora“ web programeri uspevaju da se izgube. Za to postoji objašnjenje: obje metode se mogu koristiti za postizanje istog rezultata. Ali moramo imati na umu da nepromišljena upotreba bilo koje od metoda može dovesti do katastrofalnih posljedica, uključujući velika opterećenja na kanalu i sigurnosne rupe.

Da biste to izbjegli, dovoljno je jednostavno detaljnije razumjeti svrhu i razlike ovih metoda.

Ako se udubite u značenje naziva metoda, mnogo toga će postati jasnije. GET (sa engleskog za primanje), tj. treba koristiti za upite podataka. POST (od engleskog poslati poštom) - koristi se za slanje podataka na server. Čini se da je sve krajnje jednostavno i jasno. Ali ko želi da razvije web stranice malo kompliciranije od web stranice sa vizit kartama s jednim obrascem za povratne informacije, bolje je da se bolje upozna s problemom.

Sigurni i nesigurni HTTP zahtjevi

HTTP 1.1 specifikacija uvodi dva koncepta: siguran i nesiguran zahtjev, ili preciznije, metod.

Sigurne metode su metode koje mogu tražiti samo informacije. Ne mogu promijeniti traženi resurs, niti mogu dovesti do neželjenih rezultata za korisnika, druge ili server. Primjeri sigurnih su zahtjev za HTML kodom web stranice ili slike. Sigurne metode uključuju HEAD i GET.

Napomena

U stvarnosti, zanatlije, naravno, mogu naškoditi GET zahtjevima. Na primjer, petlje upita.

Nesigurni upiti, kao što su svi već pretpostavili, mogu potencijalno dovesti do loših posljedica ako se ponovo koriste. Takvi zahtjevi mogu promijeniti sadržaj resursa kojem se pristupa. Primjeri takvih zahtjeva: slanje poruka, registracija, online plaćanja. Nesigurne metode uključuju POST, PUT, DELETE.

Idempotentne metode

Idempotencija je svojstvo metoda koje će, uz brojne ponovljene pozive, vratiti isti rezultat, osim u slučajevima kada su informacije zastarjele. To znači da će prilikom pristupa istom URL-u svi korisnici vidjeti istu web stranicu, sliku, video itd. Metode GET, PUT, DELETE imaju ovo svojstvo.

Sada pogledajmo bliže same GET i POST metode: napišimo kratak "sažetak" za svaku.

GET

  • dizajniran za primanje podataka sa servera;
  • tijelo zahtjeva je prazno;
  • obrađuje se na strani servera brže i uz manju potrošnju serverskih resursa zbog praznog tijela zahtjeva;
  • prijenos varijabli se događa u adresnoj traci (tako ga vidi korisnik; tehnički se podaci prenose u liniji upita) i stoga su vidljive informacije o varijablama i njihovim vrijednostima (podaci nisu zaštićeni);
  • može prenijeti malu količinu podataka na server: postoje ograničenja na dužinu URL-a, koja ovisi o pretraživaču, na primjer, IE6 = 2Kb. Yahoo! programeri preporučuju fokusiranje na ovaj broj;
  • može prenositi samo ASCII znakove;
  • takav zahtjev se može kopirati i sačuvati (na primjer, u markerima);
  • zahtjev se može keširati (ovo se može kontrolisati);
  • kako bi se dodatno smanjilo opterećenje kanala i servera, dostupni su uvjetni i djelomični zahtjevi;
  • ne prekida HTTP vezu (ako je režim KeepAlive omogućen na serveru).

POŠTA

  • namijenjen za slanje podataka na server;
  • prijenos podataka se odvija u tijelu zahtjeva;
  • obrada na strani servera je sporija i „teža“ od GET-a, jer se pored zaglavlja mora analizirati i tijelo zahtjeva;
  • sposoban za prijenos velikih količina podataka;
  • sposoban za prijenos datoteka;
  • stranica generirana metodom POST ne može se sačuvati kao oznake;
  • prekida HTTP vezu;
  • Za prijenos čak i vrlo male količine informacija, većina pretraživača šalje najmanje dva TCP paketa: zaglavlje, a zatim tijelo zahtjeva.

Ispostavilo se da ove dvije metode nisu toliko slične. Korištenje jednog ili drugog bi trebalo biti određeno zadatkom koji je na raspolaganju, a ne činjenicom da se GET koristi po defaultu ili je lakši za rad. GET je, naravno, bolja opcija u većini slučajeva, posebno kada se gradi brzi AJAX, ali ne zaboravite na njegove nedostatke. Za sebe sam napravio jednostavan algoritam-napomenu o izboru metode.

Možda ste primijetili da na većini stranica možete vidjeti sljedeće adrese:

Http://site/index.php?blog=2

Ovdje, čak i bez poznavanja php-a, možete pretpostaviti da pristupamo datoteci index.php Ali malo ljudi zna šta dolazi iza upitnika. Vrlo je jednostavno: ?blog=2 Ovo je deklaracija globalne varijable "$_GET["blog"]" sa vrijednošću "2". Stoga u skriptu prosljeđujem varijablu koja je odgovorna za prikaz informacija iz baze podataka. Hajde da napišemo malu skriptu u kojoj možete sve jasno vidjeti:

if(isset($_GET["blog"])) (
echo $_GET["blog"];
}
?>

Koristimo if() operator uslova i sljedeći red se koristi kao uvjet:

Isset($_GET["blog"])

isset() vam omogućava da saznate postoji li varijabla navedena u zagradama, odnosno uvjet koji sam opisao u kodu zvuči ovako: Ako postoji varijabla $_GET["blog"], tada prikažite sadržaj ove varijable na ekranu. Evo šta se dogodilo:

Mislim da je jasno Kreirana je globalna varijabla $_GET sa identifikatorom koji smo deklarirali u adresnoj traci ( u ovom slučaju sa identifikatorom “blog”)

Sada želim da razjasnim jednu stvar. Pretpostavimo da trebamo deklarirati dvije varijable, kako to učiniti? Prva varijabla je deklarirana nakon upitnika "?" Druga varijabla je deklarirana nakon znaka “&” ( Da budem iskren, ne znam koji je ovo znak), evo primjera deklaracije tri varijable:

Http://site/index.php?a=1&b=2&c=3

Evo izlaznog koda:

if(isset($_GET["a"]) I isset($_GET["b"]) I isset($_GET["c"])) (
echo $_GET["a"]."
";
echo $_GET["b"]."
";
echo $_GET["c"]."
";
}
?>

Stanje zvuči ovako:

Ako postoji globalna varijabla $_GET["a"] i globalna varijabla $_GET["b"] i globalna varijabla $_GET["c"], onda ih prikažite na ekranu, evo rezultata:

Forms

Prije nego što stignemo pošta zahtjeva, morate razumjeti koji su obrasci? Zašto je to potrebno? Zato što je globalna varijabla $_POST[""] kreirana kroz forme. Šta je forma? Ovo su polja u koja korisnik može unijeti neke informacije. Postoje polja u jednom redu, velika polja, kao i radio dugmad i potvrdni okviri. Hajdemo sve po redu...

Forma je oznaka:


elementi forme

Obrazac ima atribute, navest ću one najčešće:

Kreirajmo formu:


elementi forme

Postavio sam datoteku kao datoteku za rukovanje test.php jer upravo u njemu pišem primjere za vas. Postavio sam način slanja na post jer se to koriste u 99,9% slučajeva. Našoj formi sam dao i ime – forma

Sada zaronimo u svijet elemenata forme. Prva stvar koju trebate razumjeti je da su gotovo svi elementi oznaka jedina razlika je u atributu tip kod ovih oznaka. Dozvolite mi da navedem korištene elemente obrasca:

Siguran sam da ste ovakva polja vidjeli više puta, pa evo šta kažu: "bez komentara"

Sada napravimo mali upitnik za obuku, s kojim ćemo dalje raditi. Naš zadatak je da napravimo mali upitnik koji će nam reći ime osobe koja ga popunjava, spol, iz koje je zemlje, omiljenu boju i tekstualno polje u koje korisnik može dodati nešto o sebi. Evo šta sam dobio:

Vaše prezime Ime Patronim:

koji je tvoj spol:
M
I

iz koje ste zemlje



Omiljene boje:

crna:
crveno:
bijela:
drugo:

O meni:




Imajte na umu da skoro svaka oznaka ima atribut vrijednost, čemu služi? Zapisuje podatke koje ćete prenijeti na drugu stranicu. Nadam se da je jasno

Sada ako pokrenemo ovaj kod u pretraživaču, vidjet ćemo sljedeće:

Za obrazac sam koristio atribut akcija sa značenjem test.php to znači, kao što sam već rekao, da će podaci iz obrasca biti prebačeni u test.php fajl.

POST zahtjev

Hajde sada da napišemo PHP kod koji će nam omogućiti da vidimo informacije koje smo uneli. Gdje se pohranjuju podaci? U slučaju zahtjeva za dobivanje, naši podaci su bili u globalnoj varijabli $_GET[""]. Prilikom postavljanja zahtjeva za objavljivanje, podaci će biti pohranjeni u globalnoj varijabli $_POST[""]. IN uglaste zagrade, potrebno je registrovati, kao u slučaju globalne varijable get, identifikator. Pitanje je gdje mogu dobiti ovaj identifikator? Zato nam je potreban atribut name na elementima forme! Upravo ova imena služe kao naš ključ u globalnom post nizu. Pa, počnimo s opisom skripte:

if(isset($_POST["submit"])) (
echo "Puno ime: ".$_POST["fio"]."
";
echo "Spol: ".$_POST["sex"]."
";
echo "Zemlja prebivališta: ".$_POST["grad"]."
";

Echo "Omiljene boje:
";
echo $_POST["color_1"]."
";
echo $_POST["color_2"]."
";
echo $_POST["color_3"]."
";
echo $_POST["color_4"]."
";
echo "O sebi: ".$_POST["o"]."


";
}
?>

Uslov if koji smo napisali kaže: Ako postoji globalna varijabla $_POST["submit"] onda prikazujemo podatke na ekranu. Ova globalna varijabla se kreira ako kliknemo na dugme za slanje, zato u u ovom primjeru atribut name je obavezan u dugmetu. Možda se pitate zašto je atribut imena dugmeta neobavezan? Vrlo je jednostavno. Tipično, programator ne prati pritisak na dugme, već prati poslane podatke. Za ispravan rad, na primjer, kontakt forme, potrebno je pratiti ne klik na dugme, već ispravnost unesenih podataka i saznati da li su ti podaci uopće uneseni. U našem primjeru nismo provjeravali poslate podatke, već smo jednostavno pratili pritisak na dugme, da pojednostavimo primjer... Evo što smo dobili:

Zaključak

Pa, danas smo pogledali dvije metode prijenosa podataka između skripti, a upoznali smo se i sa formama. Iskreno se nadam da će vam ova informacija barem negdje biti od koristi. Ako imate pitanja ili razmišljanja, napišite komentare. Srećno, to je sve za danas!

P.S.: Da li želite da kompjuterske igrice postanu još realističnije? Directx 11 za windows 7 može se besplatno preuzeti na windows in! Uživajte u divnoj grafici!

Metode GET i POST u HTTP i HTTPS su dvije najpopularnije metode koje se koriste za prijenos podataka sa klijenta na server koristeći HTTP (HyperText Transfer Protocol). I GET i POST se mogu koristiti za slanje zahtjeva i primanje odgovora, ali među njima postoje značajne razlike.

Razlika između GET i POST zahtjeva u HTTP ili HTTPS popularno je pitanje u svakom intervjuu za web programiranje. Budući da je HTML nezavisan od tehnologije web servera kao što su Java, ASP ili PHP, a HTTP je glavni protokol u Internet prostoru, važnost razumijevanja metoda GET i POST ne može se jasno zanemariti. U ovom članku ćemo pogledati šta je HTTP GET metoda, šta je HTTP POST metoda, kada koristiti svaki zahtev i koja je razlika između njih. Pogledajmo svaki koncept posebno.

Šta je HTML?

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



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

<Тело>

Ovo je primjer pasusa u HTML-u.

Prvi red specificira vrstu sadržaja sadržanog u dokumentu., I , koji su svi uključeni u gornji primjer. Naslov stranice, metapodaci i linkovi na sidrene datoteke se postavljaju između stvarnog sadržaja stranice, a između oznaka .

Web je prošao kroz mnoge promjene u posljednjih nekoliko decenija, 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 uporedite 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 kaskadne tablice stilova ili JavaScript za formatiranje gotovo svih elemenata unutar stranice.

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

HTTP protokol za prijenos hiperteksta dizajniran je za komunikaciju između klijenata i servera i radi kao protokol zahtjev-odgovor.

Web pretraživač može biti klijent, a aplikacija na računaru koji hostuje veb lokaciju može biti server.

Klijent (pretraživač) šalje HTTP zahtjev serveru, server vraća odgovor koji sadrži informacije 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 servera su:

    GET - traži podatke iz navedenog resursa;

    POST - šalje podatke za obradu na navedeni resurs.

Prijevod GET i POST doslovno znači primanje i naknadnu obradu.

Više o HTTP-u

HTTP je protokol koji se koristi za prijenos podataka preko Interneta. To je dio paketa Internet Protocol i definira komande i usluge koje se koriste za prijenos podataka web stranica.

HTTP koristi model server-klijent. Klijent može biti kućni računar, laptop ili mobilni uređaj. HTTP server je obično web host sa softver web server kao što je Apache ili IIS. Kada korisnik pristupi web stranici, pretraživač šalje zahtjev odgovarajućem web serveru i odgovara HTTP statusnim kodom. Ako je URL ispravan i veza je odobrena, server će poslati web stranicu i povezane datoteke u pretraživač.

Uobičajeni HTTP statusni kodovi uključuju:

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

    301 - Konstantno se kreće (često preusmjerava na novi URL);

    401 — neovlašteni zahtjev (potrebno je ovlaštenje);

    500 - Interna greška servera (često uzrokovana neispravnom konfiguracijom servera).

POST i GET u HTTP-u

HTTP definira GET i POST komande koje se koriste za obradu slanja obrazaca na web stranicama. Naredba CONNECT se koristi za olakšavanje sigurne veze koja je šifrirana korištenjem SSL-a. Šifrovane HTTP veze se javljaju preko HTTPS-a, proširenja HTTP-a dizajniranog za siguran prijenos podataka.

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

POŠTA

POST je serija sistemskih testova koje obavljaju računari i drugi elektronski uređaji kada su uključeni. Rezultati testa mogu biti prikazani na ekranu, prikazani preko treperećih LED dioda ili jednostavno snimljeni interno. U računarskim sistemima, POST operacija se izvodi na početku sekvence pokretanja. Ako svi testovi prođu, ostatak procesa pokretanja će se nastaviti automatski.

Operativni sistemi Mac i Windows uređaja pokreću POST svaki put kada se računar pokrene ili ponovo pokrene. Skenirajte provjere Hardver i osigurava da procesor, RAM i uređaji za skladištenje ispravno rade. Ako dođe do greške tokom POST-a, proces pokretanja može pauzirati ili potpuno zaustaviti, a na monitoru se može pojaviti poruka. Na računarima, POST greške se često pojavljuju na ekranu informacija o BIOS-u. Mogu se prikazati kao kriptični kodovi kao što je "08" ili kao sistemska poruka, na primjer, "Greška pomaka sistemske memorije." Na Macu, POST greške se često označavaju jednostavnom grafikom, kao što je ikona slomljene fascikle, što ukazuje da uređaj za pokretanje nije pronađen.

Fizičke manifestacije

U nekim slučajevima, ekran računara se možda neće ni uključiti prije POST grešaka. Ako se to dogodi, kodovi grešaka mogu biti prikazani kroz treperenje LED dioda ili zvučnih signala. Na primjer, Apple iMac će pustiti tri uzastopna tona, pauzirati pet sekundi, a zatim ponoviti tonove kada se otkrije loša RAM memorija tokom pokretanja. Većina računara takođe pišti kada se otkriju POST greške, iako svaki proizvođač koristi svoje sopstvene kodove.

POST je prilično tehnički izraz koji samo kompjuterski tehničari koriste redovno. Međutim, to je dobar akronim jer vam pomaže da bolje razumete poruke o grešci koje se mogu pojaviti na računarima ili drugim elektronskim uređajima. Ako se vaše računalo ne pokrene zbog POST greške, možete koristiti drugi uređaj da pronađete značenje i uzrok greške na web stranici proizvođača. Tada možete poduzeti odgovarajuću radnju - uklanjanje memorijskog modula ili ponovno instaliranje video kartice, a zatim ponovno pokretanje opreme.

GET

POST je također varijabilna metoda prijenosa HTML forme 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 (pretraživača) do servera u tijelu poruke. Nasuprot tome, GET zahtjevi uključuju sve potrebne podatke u URL-u. Obrasci u HTML-u mogu koristiti bilo koju metodu specificiranjem method=POST ili method=GET (podrazumevano) na elementu . Navedena metoda određuje kako se podaci obrasca šalju serveru. Kada se koristi metoda GET, svi podaci obrasca se kodiraju u URL kao parametri niza upita. Sa POST-om, podaci obrasca se pojavljuju u tijelu poruke HTTP zahtjeva.

Razlike u formi prezentacije

Metoda POST zahtjeva zahtijeva od web servera da prihvati i pohrani podatke zatvorene u tijelu poruke zahtjeva. Često se koristi prilikom učitavanja datoteke ili slanja popunjenog web obrasca.

Metoda HTTP GET zahtjeva preuzima informacije sa servera. Kao dio GET zahtjeva, neki podaci mogu biti proslijeđeni u URL nizu upita, navodeći pojmove za pretraživanje, raspon datuma ili druge informacije koje specificiraju zahtjev.

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

Glavna razlika između GET i POST zahtjeva je u tome š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 pretraživač, a zatim se kodira na način određen 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. podaci obrasca se postavljaju i šalju na server.

Za slanje obrasca koristeći METHOD="GET", pretraživač konstruiše URL tako što uzima vrijednost atributa akcije i dodaje ga skupu podataka obrasca, kodiranom pomoću tipa sadržaja application/x-www-form-urlencoded). Pregledač tada tretira ovaj URL kao da upućuje na vezu (ili kao da je korisnik ručno unio URL). Pregledač dijeli URL na dijelove i prepoznaje host, a zatim šalje GET zahtjev tom hostu sa ostatkom URL-a kao argumentom. Važno je napomenuti da ovaj proces znači da su ovi oblici ograničeni na ASCII kodove. Posebnu pažnju treba obratiti na kodiranje i dekodiranje drugih tipova znakova kada ih prosljeđujete na ASCII URL.

Podnošenje obrasca sa METHOD="POST" uzrokuje da se pošalje POST zahtjev koristeći vrijednost atributa akcije i poruku generiranu prema tipu sadržaja specificiranom 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 server koji hostuje stranicu. Izlaz GET i POST funkcija u PHP-u na stranici se obično vraća kao HTML kod koji pretraživač može pročitati. Budući da se PHP kod pretvara u HTML prije nego što se stranica učita, korisnici ne mogu vidjeti PHP kod na stranici. Ima PHP stranice dovoljno za pristup bazama podataka i drugim zaštićenim informacijama.

Većina PHP-ove sintakse je posuđena iz drugih jezika kao što su C, Java i Perl. Međutim, PHP ima brojne jedinstvene karakteristike i posebne karakteristike. Svrha ovog jezika je omogućiti web programerima da brzo i jednostavno pišu dinamički generirane stranice.

Wordpress

WordPress je besplatni sistem za upravljanje sadržajem koji se koristi za kreiranje 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ćava svima koji nemaju iskustva u razvoju web stranica da kreiraju i objave web stranicu. Ugrađeni alati za blogovanje pružaju jednostavan način praćenja pojedinačnih postova, posjetitelja i komentara korisnika.

Iako postoje hiljade WordPress šablona i dodataka dostupnih, POST GET sistem u WordPressu i dalje ima svoja ograničenja. Budući da se radi o usluzi zasnovanoj na predlošku, korisnik mora početi s unaprijed napravljenom web lokacijom umjesto da kreira stranice od nule. Osim toga, ne postoji mogućnost umetanja skripti ili održavanja baze podataka sa istim nivoom kontrole koji nudi prilagođena web stranica.

Alat POST_GET_ID() dozvoljava skriptama da manipulišu stavkom jer ima jedinstveni ID i kada je podnesete kao formu putem ovih metoda padajući meni će biti dostavljen sa jedinstvenim ID-om koji omogućava skripti da primijeti koja se objava pokreće. Alternativno, može se poslati skrivena varijabla koja bi omogućila skripti da vidi koji post pripada pogledu.

Zajedničko im je da rade na isti način. Tehnički nema razlike između njih. Ali postoje ideološke razlike.

Govoriću o njima u kontekstu PHP-a. Imajte na umu da je HTTP protokol indirektno povezan sa PHP-om jer je kreiran za razmjenu html stranica i PHP jednostavno proširuje mogućnosti oba.

GET zahtjev se koristi za primanje podataka, a POST za slanje. (Zapamtite da tehnički rade isto).

Stoga smo u kontekstu PHP-a, na osnovu ove ideologije, uradili sljedeće:
1. Svaki put kada pokrenete PHP, po defaultu se kreiraju superglobalni nizovi ($_GET, $_POST).
2. Ako postoji znak pitanja (?) u nizu upita. Sve nakon toga se razmatra parametri GET zahtjev, oni su predstavljeni u formatu "ključ"="value" i znak ampersand (&) se koristi kao graničnik.
primjer:
GET /index.php?name=Andrey&surname=Galkin
Ovo je niz upita, postoje 2 parametra. ovi parametri će ići u niz $_GET.
3. $_POST se popunjava na drugačiji način. sadržaj ovog niza se popunjava iz "zaglavlja zahtjeva". Odnosno, sa mesta jasno skrivenog od pogleda. Pregledač se brine za sve poslove kreiranja takvih zaglavlja. Iako se ponekad nešto ručno uređuje u naslovima.

Najčešće se u obrascima (za slanje podataka) koristi zahtjev za poštu.

Na primjer, imamo obrazac za prijavu sa 2 polja: prijava i lozinka.

Zamislimo da koristimo metodu GET. Zatim, prilikom slanja obrasca, idemo na sljedeću adresu /login.php?login=Andrey&password=123 Slažete se da prenošenje takvih informacija na ovaj način nije nimalo bezbjedno. Svako može da otvori vaš pretraživač i, počevši da unosi adresu sajta, može da vidi vaše lozinke i prijave iz istorije.

Ali ako bismo specificirali POST metodu, primili bismo sljedeći zahtjev:
POST /login.php (login=Andrey&password=123) ono što je u zagradama bilo bi skriveno i ne bi bilo sačuvano na bilo koji način u pretraživaču.

Da sumiramo:
GET je da dobijete određenu stranicu u određenom obliku (sortiranje, trenutna stranica bloga, traka za pretraživanje, itd.).
POST - za slanje podataka koji ne utiču na prikaz stranice, u smislu da ti podaci utiču samo na rezultat skripte (prijave, lozinke, brojevi kreditnih kartica, poruke itd.).

Još jedna dobra vijest je da se mogu kombinirati, na primjer
POST /index.php?page=login (login=Andrey&password=123) Mislim da sam već dovoljno objasnio šta će iz ovoga proizaći i koji će parametri ulaziti u koji niz.

mob_info