Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Programet
  • PHP: POSToni dhe merrni Kërkesa për Fillestarët. Përdorimi i metodave GET dhe POST

PHP: POSToni dhe merrni Kërkesa për Fillestarët. Përdorimi i metodave GET dhe POST

Përdorimi i metodave GET dhe POST në PHP është i vështirë të mbivlerësohet, pasi këto metoda gjenden pothuajse në çdo faqe. Para se të studioni materialin e përshkruar më poshtë, ju këshilloj të njiheni me etiketën html

... Le të hedhim një vështrim në secilën prej këtyre metodave në detaje.

Metoda GET

Metoda GET përdor një varg URL për të kaluar të dhënat. Ju mund të keni vënë re URL të gjata dhe të paqarta. Për shembull: funksion.php?hyrje = Alex & email = dezyakin... Në këtë rast të dhënat përpunohen në funksion.php. Pas pikëpyetjes "?" Ekziston një numërim i parametrave të transmetuar (parametri ndahet me shenjën "&") me vlerat: parametrit të hyrjes i caktohet vlera Alex, dhe ndryshores së emailit është dezyakin. Të dhënat do të ruhen në grupin superglobal $ _GET. Një shembull i përdorimit të metodës GET është paraqitur më poshtë:

Identifikohu: Email: Duke përdorur grupin superglobal $ _GET, ne shfaqim vlerat e pranuara:* / jehonë "
login = ". $ _GET [" login "]; jehonë"
email = ". $ _MERRNI [" email "];?>

Vini re se si lexojmë vlerat nga grupi superglobal $ _GET: $ _MERRNI ["emri_ndryshore"]... Në shembullin tonë, emrat e variablave u deklaruan në formën (emri = login dhe emri = email).

Këshilla:
Përpara se të përpunoni vlerat e marra, ju këshilloj të kontrolloni ekzistencën e tyre përmes funksioneve i vendosur (emri_ndryshores) ose bosh (emri_ndryshues)- këto funksione u trajtuan në mësimin e mëparshëm 2: variablat në PHP. Për shembull:

duke kontrolluar ekzistencën me isset: nëse është vendosur ($ _GET ["login"]) ( operatorët për të trajtuar hyrjen ... } //ose kontrolloni ekzistencën duke përdorur bosh: nëse bosh ($ _GET ["email"]) ( operatorët për përpunimin e postës elektronike ... } ?>

Në formë, mund të specifikoni emrin e skedarit që do të përpunojë vlerat e kaluara. Kjo bëhet duke përdorur atributin e veprimit të formularit, të cilit mund t'i caktohet adresa e këtij skedari. Si parazgjedhje, ky skedar i caktohet skedarit aktual (d.m.th. i përpunuar në skedarin ku ndodhet formulari). Këtu është një shembull në të cilin të dhënat nga një formular dërgohen për përpunim në skedarin srcipt.php:

Identifikohu: Email:

Skedari script.php duhet të përmbajë një lloj mbajtësi informacioni, përndryshe informacioni do të kalojë në bosh.

Metoda GET ka shumë disavantazhe:

  • Përdoruesi sheh vlerat e parametrave të kaluar;
  • Përdoruesi mund të falsifikojë lehtësisht parametrat e transmetuar;
  • Transmetim i papërshtatshëm i informacionit binar (duhet të kodoni në format teksti);
  • Sasia e të dhënave të transferuara është e kufizuar - 8 Kbajt;

Për shkak të disavantazheve të mësipërme, metoda GET përdoret vetëm në rastet kur duhet të transferoni një sasi të vogël të dhënash dhe këto të dhëna nuk janë në asnjë mënyrë sekrete.

Metoda POST

Metoda POST ndryshon nga GET në atë që të dhënat transmetohen në formë të mbyllur. Ekziston një grup superglobal $ _POST nga i cili mund të lexoni të dhëna si kjo: $ _POST ["emri_ndryshore"]... Për shembull:

Identifikohu: "> E-mail: ">
Duke përdorur grupin superglobal $ _POST, printoni vlerat e pranuara:* / jehonë "
login = ". $ _POST [" login "]; jehonë"
email = ". $ _POST [" email "];?>

Rezultati i ekzekutimit të kodit të përshkruar më sipër është paraqitur në figurën më poshtë:

Siç mund ta shihni, URL-ja nuk ka postscript, por megjithatë të dhënat u morën dhe u shfaqën.

shënim:
1) Vëllimi i vlerave të transmetuara me metodën POST është i kufizuar si parazgjedhje dhe është i barabartë me 8 MB. Për të rritur këtë vlerë, duhet të ndryshoni direktivën post_max_size në php.ini.

2) Në versionet e mëparshme të PHP, në vend të emrave të shkurtër të grupeve superglobale $ _GET dhe $ _POST, u përdorën emra më të gjatë: $ HTTP_GET_VARS dhe $ HTTP_POST_VARS. Ato janë të çaktivizuara si parazgjedhje në php 5, por mund t'i aktivizoni në skedarin e konfigurimit php.ini duke përdorur parametrin register_long_arrays. Në php 6, këta emra të gjatë nuk do të jenë të disponueshëm.

3) Përpara se të përpunoni variablat nga $ _POST, ju këshilloj të kontrolloni variablat për praninë e tyre, ashtu siç u bë me metodën GET.

Metodat GET dhe POST në HTTP dhe HTTPS janë dy nga metodat më të njohura që përdoren për të transferuar të dhëna nga një klient në një server duke përdorur protokollin HTTP (Hypertext Transfer Protocol). Si GET ashtu edhe POST mund të përdoren për të dërguar një kërkesë dhe për të marrë një përgjigje, por ekziston një ndryshim domethënës midis të dyjave.

Dallimi midis kërkesave GET dhe POST në HTTP ose HTTPS është një pyetje e njohur në çdo intervistë programimi në internet. Meqenëse HTML është i pavarur nga teknologjia e serverit të uebit si Java, ASP ose PHP dhe HTTP është protokolli kryesor në hapësirën e internetit, rëndësia e të kuptuarit të metodave GET dhe POST nuk mund të injorohet qartë. Në këtë artikull, ne do të shohim se çfarë është një metodë HTTP GET, çfarë është një metodë HTTP POST, kur të përdoret një kërkesë e veçantë dhe cili është ndryshimi midis tyre. Le të analizojmë secilin koncept veç e veç.

Çfarë është HTML?

HTML është gjuha e përdorur për të krijuar faqe në internet. Hiperteksti i referohet hiperlidhjeve që mund të përmbajë një faqe HTML. Gjuha e shënimit i referohet mënyrës në të cilën etiketat përdoren për të përcaktuar paraqitjen e faqes dhe elementet në faqe.
Më poshtë është një shembull i HTML që përdoret për të përcaktuar një uebfaqe bazë me një titull dhe një paragraf teksti:



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

<Тело>

Ky është një shembull i një paragrafi në HTML.

Rreshti i parë përcakton llojin e përmbajtjes që përmban dokumenti., dhe të cilat janë përfshirë të gjitha në shembullin e mësipërm. Titulli i faqes, metadatat dhe lidhjet e skedarit të ankorimit vendosen midis përmbajtjes aktuale të faqes midis etiketave .

Uebi ka pësuar shumë ndryshime gjatë dekadave të fundit, por HTML ka qenë gjithmonë gjuha kryesore e përdorur për zhvillimin e faqeve në internet. Është interesante se ndërsa faqet e internetit janë bërë më të avancuara dhe ndërvepruese, HTML është bërë më e thjeshtë. Nëse e krahasoni burimin e një faqeje HTML5 me një faqe të ngjashme të shkruar në HTML 4.01 ose XHTML 1.0, do të ketë më pak kod në faqen HTML5. Kjo është për shkak se HTML-ja moderne mbështetet në fletët e stilit Cascading ose JavaScript për të formatuar pothuajse të gjithë elementët brenda një faqeje.

Shumë faqe interneti dinamike gjenerojnë faqe uebi menjëherë duke përdorur një gjuhë skriptimi nga ana e serverit si PHP ose ASP. Megjithatë, edhe faqet dinamike duhet të formatohen duke përdorur HTML. Prandaj, gjuhët e skriptimit shpesh gjenerojnë HTML që dërgohet në shfletuesin e internetit.

Protokolli i Transferimit të Hipertekstit (HTTP) është krijuar për komunikim ndërmjet klientëve dhe serverëve dhe funksionon si një protokoll për përgjigjen e kërkesës.

Shfletuesi i internetit mund të jetë klienti, dhe aplikacioni në kompjuterin që pret faqen e internetit mund të jetë serveri.

Klienti (shfletuesi) dërgon një kërkesë HTTP në server, serveri kthen një përgjigje që përmban informacione për statusin e kërkesës dhe gjithashtu mund të përmbajë përmbajtjen e kërkuar.

Dy metoda të kërkesës GET dhe POST

Dy metoda të përdorura zakonisht për përgjigjen e kërkesës midis klientit dhe serverit:

    GET - kërkon të dhëna nga burimi i specifikuar;

    POST - Dërgon të dhënat për t'u përpunuar në burimin e specifikuar.

Përkthimi GET dhe POST fjalë për fjalë do të thotë marrjen dhe pas-përpunimin.

Më shumë rreth HTTP

HTTP është protokolli që përdoret për të transferuar të dhëna përmes Internetit. Ai është pjesë e paketës së Protokollit të Internetit dhe përcakton komandat dhe shërbimet e përdorura për transferimin e të dhënave në një faqe interneti.

HTTP përdor modelin server-klient. Klienti mund të jetë një kompjuter shtëpiak, laptop ose pajisje celulare. Një server HTTP është zakonisht një host në internet me softuer të serverëve në internet si Apache ose IIS. Kur një përdorues hyn në një faqe interneti, shfletuesi dërgon një kërkesë në serverin e duhur të internetit dhe përgjigjet me një kod statusi HTTP. Nëse URL-ja është e vlefshme dhe lidhja është siguruar, serveri do të dërgojë faqen e internetit dhe skedarët e lidhur te shfletuesi.

Kodet e zakonshme të statusit HTTP përfshijnë:

    200 - kërkesë e suksesshme (ekziston uebfaqja);

    301 - lëviz vazhdimisht (shpesh ridrejtohet në një url të ri);

    401 - kërkesë e paautorizuar (kërkohet autorizimi);

    500 - Gabim i brendshëm i serverit (shpesh i shkaktuar nga konfigurimi i gabuar i serverit).

POST dhe MERR në HTTP

HTTP përcakton komandat GET dhe POST që përdoren për të përpunuar paraqitjet e formularëve në faqet e internetit. Komanda CONNECT përdoret për të lehtësuar një lidhje të sigurt që është e koduar duke përdorur SSL. Lidhjet e koduara HTTP ndodhin mbi HTTPS, një shtesë HTTP e krijuar për transferime të sigurta të të dhënave.

URL-të që fillojnë me "http: //" janë të aksesueshme përmes protokolleve standarde të transferimit të hipertekstit dhe përdorin si parazgjedhje portën 80. URL-të që fillojnë me "https: //" janë të aksesueshme përmes një lidhjeje të sigurt HTTPS dhe shpesh përdorin portin 443.

POST

POST është një seri kontrollesh të sistemit që kryhen nga kompjuterët dhe pajisjet e tjera elektronike kur ato janë të ndezura. Rezultatet e testit mund të shfaqen në ekran, të shfaqen nëpërmjet LED-ve që ndezin ose thjesht të regjistrohen nga brenda. Në sistemet kompjuterike, operacioni POST kryhet në fillim të sekuencës së nisjes. Nëse të gjitha testet kalojnë, pjesa tjetër e procesit të nisjes do të vazhdojë automatikisht.

Sistemet operative Mac dhe Windows ekzekutojnë POST sa herë që kompjuteri niset ose riniset. Skanimi vërteton harduerin dhe siguron që procesori, RAM-i dhe pajisjet ruajtëse të funksionojnë siç duhet. Nëse ndodh një gabim gjatë POST, procesi i nisjes mund të ndalet ose të ndalojë plotësisht dhe monitori mund të shfaqë një mesazh që thotë se gabimet POST shfaqen shpesh në ekranin e informacionit të BIOS-it. Ato mund të dalin si kriptokode si "08" ose si mesazh sistemi si "Gabimi i memories së sistemit në kompensim". Në Mac, gabimet POST shpesh shënohen me grafikë të thjeshtë, si p.sh. një ikonë e thyer e dosjes që tregon se nuk u gjet asnjë pajisje boot.

Manifestimet fizike

Në disa raste, ekrani i kompjuterit mund të mos ndizet edhe para gabimeve POST. Nëse kjo ndodh, kodet e gabimit mund të nxirren përmes LED-ve që ndezin ose sinjalizimeve. Për shembull, një Apple iMac do të luajë tre tone të njëpasnjëshme, do të ndalojë për pesë sekonda dhe më pas do të përsërisë tonet kur zbulohet RAM i keq gjatë nisjes. Shumica e PC-ve gjithashtu japin një sinjal kur zbulohen gabime POST, megjithëse secili prodhues përdor kodet e veta.

POST është një term mjaft teknik që vetëm teknikët e kompjuterave e përdorin rregullisht. Megjithatë, është një akronim i mirë pasi ju ndihmon të kuptoni më mirë mesazhet e gabimit që mund të shfaqen në kompjuterë ose pajisje të tjera elektronike. Nëse kompjuteri juaj nuk fillon për shkak të një gabimi POST, mund të përdorni një pajisje tjetër për të gjetur kuptimin dhe shkakun e gabimit nga faqja e internetit e prodhuesit. Pastaj mund të ndërmerrni veprimet e duhura - hiqni modulin e kujtesës ose riinstaloni kartën video dhe më pas rinisni pajisjen.

MARR

POST është gjithashtu një metodë e kalimit të variablave të formës HTML nga një faqe interneti në tjetrën pa i shfaqur ato në shiritin e adresave. Një metodë alternative është GET, e cila shton vlera në URL. Kërkesat HTTP POST ofrojnë të dhëna shtesë nga klienti (shfletuesi) te serveri në trupin e mesazhit. Në të kundërt, kërkesat GET përfshijnë të gjitha të dhënat e kërkuara në URL. Format në HTML mund të përdorin çdo metodë duke specifikuar metodën = POST ose metodën = GET (parazgjedhja) në element

... Metoda e specifikuar përcakton se si të dhënat e formularit dërgohen në server. Kur përdoret metoda GET, të gjitha të dhënat e formularit janë të koduara në URL si parametra të vargut të pyetjes. Me POST, të dhënat e formularit shfaqen në trupin e mesazhit të kërkesës HTTP.

Dallimet në paraqitjen e formularit

Metoda e kërkesës POST kërkon që serveri në internet të pranojë dhe ruajë të dhënat e vendosura në trupin e mesazhit të kërkesës. Shpesh përdoret kur ngarkoni një skedar ose kur dërgoni një formular të plotësuar në internet.

Metoda e kërkesës HTTP GET merr informacion nga serveri. Si pjesë e një kërkese GET, disa të dhëna mund të kalojnë në vargun e pyetjeve të URL-së, duke specifikuar termat e kërkimit, intervalet e datave ose informacione të tjera që identifikojnë kërkesën.

Si pjesë e një kërkese POST, një sasi arbitrare e të dhënave të çdo lloji mund të dërgohet në server në trupin e mesazhit të kërkesës. Fusha e kokës në një kërkesë POST zakonisht tregon llojin e medias në internet të trupit të mesazhit.

Dallimi kryesor midis kërkesave GET dhe POST është se ato korrespondojnë me kërkesa të ndryshme HTTP siç përcaktohet në specifikimet HTTP. Procesi për paraqitjen e të dyja metodave fillon në të njëjtën mënyrë: grupi i të dhënave të formularit krijohet nga shfletuesi dhe më pas kodohet në mënyrën e treguar nga atributi enctype. Për METHOD = "POST, atributi enctype mund të jetë shumëpjesësh / formë-të dhëna ose aplikacion / x-www-form-urlencoded, ndërsa për METHOD = "GET " aktivizohet vetëm nëpërmjet aplikacionit / x-www-form-urlencoded. Kjo formë të dhënat vendosen më pas kalojnë në server.

Për të paraqitur një formular duke përdorur METHOD = "GET", shfletuesi ndërton një URL duke marrë vlerën e atributit të veprimit dhe duke i shtuar asaj grupin e të dhënave të formularit, të koduar duke përdorur aplikacionin / llojin e përmbajtjes x-www-form-urlencoded). Shfletuesi më pas e trajton atë URL sikur t'i referohet një lidhjeje (ose sikur përdoruesi ta kishte shtypur URL-në manualisht). Shfletuesi e ndan URL-në në copa dhe e njeh hostin, më pas i dërgon një kërkesë GET atij hosti me pjesën tjetër të URL-së si argument. Është e rëndësishme të theksohet se ky proces nënkupton që të dhënat e formularit janë të kufizuara në kodet ASCII. Kujdes i veçantë duhet treguar për të koduar dhe deshifruar lloje të tjera karakteresh kur ato transmetohen nëpërmjet një URL në formatin ASCII.

Një paraqitje e formularit me METHOD = "POST" bën që një kërkesë POST të dërgohet duke përdorur vlerën e atributit të veprimit dhe mesazhin e krijuar sipas llojit të përmbajtjes të treguar nga atributi enctype.

PHP

PHP është i ngulitur në HTML. Kjo do të thotë që kodi PHP mund të futet në një faqe HTML. Kodi PHP lexohet ose analizohet nga serveri që pret faqen. Prodhimi i funksioneve GET dhe POST në PHP në një faqe zakonisht kthehet si HTML që mund të lexohet nga shfletuesi. Për shkak se kodi PHP konvertohet në HTML përpara se faqja të ngarkohet, përdoruesit nuk mund ta shikojnë kodin PHP në faqe. Kjo i bën faqet PHP të mjaftueshme për të hyrë në bazat e të dhënave dhe informacione të tjera të mbrojtura.

Pjesa më e madhe e sintaksës së PHP-së është huazuar nga gjuhë të tjera si C, Java dhe Perl. Sidoqoftë, PHP ka një sërë veçorish unike dhe veçori të veçanta. Qëllimi i kësaj gjuhe është t'u mundësojë zhvilluesve të uebit të shkruajnë faqet e krijuara në mënyrë dinamike shpejt dhe me lehtësi.

Wordpress

WordPress është një sistem falas i menaxhimit të përmbajtjes që përdoret për të ndërtuar dhe mirëmbajtur faqet e internetit. Lehtësia e përdorimit dhe veçoritë unike të blogimit e kanë bërë atë mjetin më të njohur të blogimit në internet.

Ndërfaqja e WordPress lejon këdo që nuk ka përvojë në zhvillimin e uebit të krijojë dhe publikojë një faqe interneti. Mjetet e integruara të blogimit ofrojnë një mënyrë të thjeshtë për të mbajtur gjurmët e postimeve individuale, vizitorëve dhe komenteve të përdoruesve.

Megjithëse ka mijëra shabllone dhe shtojca të WordPress në dispozicion, sistemi POST GET në WordPress ka ende kufizimet e tij. Meqenëse ky është një shërbim i bazuar në shabllone, përdoruesi duhet të fillojë me një uebsajt të para-ndërtuar në vend që të krijojë faqe nga e para. Gjithashtu, nuk ka asnjë mënyrë për të futur skriptet ose për të mbajtur një bazë të dhënash me të njëjtin nivel kontrolli që ofron një faqe interneti me porosi.

Mjeti POST_GET_ID () i lejon skriptet të manipulojnë artikullin pasi ai ka një ID unike dhe kur e dorëzon atë si formular nëpërmjet këtyre metodave, menyja rënëse do të dërgohet me një ID unike që lejon skriptin të vërejë se cili postim po ekzekutohet. Përndryshe, mund të dërgohet një variabël i fshehur që do të lejojë skriptin të shohë se cili postim i përket pamjes.

Po, po, të gjithë dikur mësuan diçka. E vetmja gjë që i dallon njerëzit në këtë drejtim është se mësimet janë të lehta për dikë, ndërsa të tjerët nuk mund ta kuptojnë thelbin e çështjes për shumë muaj. Sot do të flasim për kërkesat POST dhe GET në HTML \ PHP.

Vetë kërkesat POST dhe GET (në tekstin e mëtejmë të referuara si thjesht kërkesa) kanë qenë prej kohësh të rrënjosura në të gjitha burimet e internetit. Nëse papritmas një ditë do të ketë një alternativë ndaj këtyre teknologjive, atëherë me siguri nuk do të jetë së shpejti dhe, ndoshta, nuk është e nevojshme. Sepse kërkesat tona përmbushin plotësisht detyrën e shkëmbimit të të dhënave ndërmjet faqeve të internetit.

Le të shohim së pari një kërkesë GET. Le të krijojmë një skedar index.php me një kod standard html, dhe gjithashtu të vendosim një formular në të, le të jetë një formular porosie produkti.

Këtu i kushtojmë vëmendje etiketës formë... Ka dy parametra veprim dhe metodë... E para është përgjegjëse për adresën e faqes në të cilën do të transferojmë të dhënat tona, e dyta është përgjegjëse për mënyrën me të cilën do të transferohen këto të dhëna. Brenda kësaj etikete, përshkruhet grupi i të dhënave tona që duam të transferojmë. Emrat u janë caktuar të dhënave (parametri emri). Kërkohet gjithashtu futja e llojit paraqesin, i cili është butoni që klikohet për të dërguar të dhëna.

Le ta ruajmë skedarin tonë dhe ta hapim atë në një shfletues.
Rruga e faqes sonë në shfletues është "... / index.php". Në vetë faqen, ne shohim dy fusha hyrëse dhe një buton. Le të shtojmë diçka në fushat tona dhe të klikojmë në butonin "Porosit". Faqja jonë është përditësuar. Le të hedhim një vështrim në adresën e tij: "… / index.php? Emri i porosisë = Test & numërimi = 12". (Kam shtypur fjalën "Test" në "12" të dytë në fushën e parë). Siç mund ta shohim, adresa e faqes ka ndryshuar pak. Fakti është se transferimi i parametrave me një kërkesë GET kryhet duke i caktuar ato në linjën e adresës së faqes. Parametrat ndahen nga adresa kryesore me '?', dhe parametrat e ndryshëm me '&'. Struktura e parametrave është si më poshtë: parametri_emri = vlera... Emri i parametrit do të përputhet me vlerën e atributit të emrit në fushën e hyrjes.
Le të modifikojmë pak kodin e faqes:

> >

Tani le të klikojmë përsëri në butonin "Porosit". Siç mund ta shohim, faqja është përditësuar, por fushat tona kanë mbetur të mbushura. Kjo për faktin se ne kemi specifikuar një vlerë të paracaktuar për fushat tona. Për më tepër, këto vlera janë parametri i marrë GET. Siç mund ta shohim në kodin PHP, parametrat GET janë një grup me një indeks vargu të barabartë me emrin e parametrit. Nëse tani luajmë me adresën e faqes dhe ndryshojmë vlerat e parametrave në të dhe shtypim butonin "Enter", do të vërejmë përsëri foton me rifreskimin e faqes dhe plotësimin e formularit tonë.

Është e qartë se është e gabuar (dhe jo e sigurt) dërgimi i të dhënave sekrete ose shërbimi në një kërkesë GET. Është më mirë ta përdorni për të transferuar, për shembull, ID-në e lajmit, i cili duhet të merret nga baza ose emri i faqes që duhet të shfaqet.

Një kërkesë POST është një çështje tjetër. Punon në të njëjtën mënyrë, por nuk i ruan parametrat në shiritin e adresave. Le të ndryshojmë formën tonë:

$ _POST ["emri i porosisë"]?> > $ _POST ["count"]?> >

Sidoqoftë, siç mund ta shihni, nuk ka ndryshuar shumë! Le të hapim faqen tonë, të vendosim diçka në fusha dhe të shtypim butonin "Porosit". Gjithçka funksionoi në të njëjtën mënyrë, megjithatë (megjithatë), siç e shohim në rreshtin e pyetjes, adresa "... / index.php" shfaqet pa asnjë lloj parametri. Kështu, ne disi "i fshehëm" të dhënat tona nga sytë kureshtarë. Sigurisht, koncepti ishte i fshehur, mjaft arbitrar, pasi këto të dhëna ende mund të përgjohen, por kjo është një histori tjetër. Le të shtojmë parametrat "… / index.php? OrderName = Trololo & count = 100" në adresën tonë dhe shtypim "Enter". Siç mund ta shohim, faqja ishte e ngarkuar, por edhe pse parametrat u kaluan, fushat ishin bosh. Kjo sugjeron që, pavarësisht ngjashmërisë së madhe, këto lloj kërkesash nuk mbivendosen në asnjë mënyrë dhe nëse ka nevojë, ia vlen të shkruhet një trajtues për çdo lloj kërkese veç e veç.

Mendoj se mjafton. Bazat e pyetjes, mendoj, përshkruhen me kokë.

Dhe pak më shumë… Mos harroni të kontrolloni parametrat e kaluar. Nëse e dini me siguri se parametri duhet të jetë një numër, atëherë ndërpritni të gjitha përpjekjet për të transferuar një vlerë jo-numerike, etj.

Ky postim ka për qëllim të shpjegojë parimet e transferimit të të dhënave në internet duke përdorur dy metoda kryesore: GET dhe POST. E shkrova si një shtesë të udhëzimeve për gjeneratorin e punës me turne për ata që nuk janë të interesuar për detajet ☺.

Shkoni në adresën e mëposhtme (kjo është për shpjegim vizual): http://calendarin.net/calendar.php?year=2016 Kushtojini vëmendje shiritit të adresave të shfletuesit: calendarin.net/calendar.php viti = 2016 Skedari kryesor emërtohet, i ndjekur nga një pikëpyetje (?) dhe një parametër "vit" me një vlerë "2016". Pra, gjithçka që pason pikëpyetjen është një kërkesë GET. Është e thjeshtë. Për të kaluar më shumë se një parametër, por disa, atëherë ato duhet të ndahen me një ampersand (&). Shembull: calendarin.net/calendar.php ? viti = 2016 & shfaqja = ditë pune dhe ditë pushimi

Skedari kryesor është ende i emërtuar, i ndjekur nga një pikëpyetje (?), Pastaj - parametri "vit" me vlerën "2016", pastaj - ampersand (&), pastaj - parametri "shfaq" me vlerën "punë -ditët-dhe-ditët -off".

Parametrat GET mund të ndryshohen drejtpërdrejt në shiritin e adresave të shfletuesit. Për shembull, duke ndryshuar vlerën "2016" në "2017" dhe duke shtypur tastin, do të shkoni në kalendarin për 2017.

Ky është transmetimi i të dhënave në mënyrë të fshehur (adresa e faqes nuk ndryshon); d.m.th., mund të shihni se çfarë është transmetuar vetëm me ndihmën e një programi (skripti). Për shembull, në mjetin e mëposhtëm për numërimin e karaktereve në një tekst, të dhënat burimore transmetohen duke përdorur metodën POST: http://usefulonlinetools.com/free/character-counter.php

Nëse keni ndonjë pyetje, komente dhe E-mail-in tim në shërbimin tuaj.

Përveç metodës GET, të cilën e diskutuam në postimin e mëparshëm, ekziston një metodë tjetër për dërgimin e një kërkese përmes protokollit HTTP - metoda POST. Metoda POST përdoret gjithashtu shumë shpesh në praktikë.

Nëse, për të hyrë në server duke përdorur metodën GET, ishte e mjaftueshme që ne të shkruanim kërkesën në URL, atëherë në metodën POST gjithçka funksionon sipas një parimi tjetër.

Për të përmbushur këtë lloj kërkese, duhet të klikojmë në butonin me atributin tip = "submit", i cili ndodhet në faqen e internetit. Vini re se ky buton ndodhet në element

me atributin e metodës të vendosur në postim.

Merrni parasysh këtë HTML:

Fut tekstin:


Nëse përdoruesi fut ndonjë tekst në fushën e tekstit dhe klikon në butonin "Dërgo", atëherë ndryshorja e tekstit me vlerën e përmbajtjes së futur nga përdoruesi do të dërgohet në server.

Kërkesat POST dhe GET në terma të thjeshtë

Kjo variabël do të dërgohet me metodën POST.

Nëse shkruani në këtë formë:

Pastaj të dhënat do të dërgohen duke përdorur metodën GET.

Nëse, në rastin e një kërkese GET, sasia e të dhënave që mund të transferonim ishte e kufizuar nga gjatësia e shiritit të adresave të shfletuesit, atëherë në rastin e një kërkese POST, nuk ka një kufizim të tillë dhe ne mund të transferojmë shuma të konsiderueshme të informacionit.

Një tjetër ndryshim midis metodës POST dhe metodës GET, metoda POST fsheh të gjitha variablat që i kalohen dhe vlerat e tyre në trupin e saj (Entity-Body). Në rastin e metodës GET, ato u ruajtën në vargun e kërkesës (Kërkesë-URI).

Këtu është një shembull i një kërkese POST:

POST / HTTP / 1.0 \ r \ n
Pritësi: www.site.ru \ r \ n
Referues: http://www.site.ru/index.html\r\n
Cookie: të ardhura = 1 \ r \ n
Lloji i përmbajtjes: aplikacioni / x-www-form-urlencoded \ r \ n
Gjatësia e përmbajtjes: 35 \r\n
\ r \ n
hyrje = Dima dhe fjalëkalimi = 12345

Kështu, duke transmetuar të dhëna duke përdorur metodën POST, do të jetë shumë më e vështirë për një sulmues që t'i përgjojë ato, sepse ato janë të fshehura nga pamja, kështu që metoda POST konsiderohet më e sigurt.

Për më tepër, metoda POST mund të transferojë jo vetëm tekst, por edhe të dhëna multimediale (foto, audio, video). Ekziston një parametër i veçantë Content-Type që përcakton llojin e informacionit që duhet të transferohet.

Së fundi, ndryshorja POST përdoret për të tërhequr të dhënat e transmetuara nga kjo metodë në server.

Këtu është një shembull i përpunimit në PHP:

echo $ _POST ['tekst'];
?>

Në postimin e fundit, vendosëm që shfletuesi (klienti) të dërgojë kërkesa HTTP te serveri dhe serveri t'i dërgojë përgjigjet HTTP klientit. Këto kërkesa dhe përgjigje përpunohen sipas rregullave të caktuara. Ka diçka si sintaksa, si dhe në çfarë sekuence duhet të shkruhet. Duhet të ketë një strukturë të mirëpërcaktuar.

Le të hedhim një vështrim më të afërt në këtë strukturë, e cila përdoret për të ndërtuar kërkesa dhe përgjigje në protokollin HTTP.

Një kërkesë HTTP përbëhet nga tre pjesë kryesore, të cilat vijnë pikërisht në rendin e treguar më poshtë. Ekziston një vijë e zbrazët midis titujve dhe trupit të mesazhit (si ndarës), është një karakter i furnizimit të linjës.

Varg bosh (ndarës)

Posto dhe Merr kërkesa, cili është ndryshimi midis tyre dhe cili është më i mirë dhe për çfarë qëllimesh?

trupi i mesazhit (Entity Body) - parametër opsional

Vargu i pyetjes- specifikon metodën e transmetimit, URL-në për të hyrë dhe versionin e protokollit HTTP.

Titujt- të përshkruajë trupin e mesazheve, të transmetojë parametra të ndryshëm dhe informacione e informacione të tjera.

trupi i mesazhit- këto janë vetë të dhënat, të cilat transmetohen në kërkesë. Trupi i mesazhit është një parametër opsional dhe mund të hiqet.

Kur marrim një kërkesë për përgjigje nga serveri, trupi i mesazhit është më së shpeshti përmbajtja e faqes së internetit. Por, kur bëni kërkesa në server, ai ndonjëherë mund të jetë i pranishëm, për shembull, kur transferojmë të dhënat që kemi plotësuar në formularin e feedback-ut në server.

Në mënyrë më të detajuar, çdo element të kërkesës, do të shqyrtojmë në shënimet e mëposhtme.

Le të marrim një kërkesë reale të serverit si shembull. Çdo pjesë të kërkesës e kam theksuar me ngjyrën e vet: vija e kërkesës është e gjelbër, titujt janë portokalli, trupi i mesazhit është blu.

Kërkesë nga shfletuesi:

Pritësi: webgyry.info

Cookie: wp-settings

Lidhja: mbaj gjallë

Në shembullin e mëposhtëm, trupi i mesazhit është tashmë i pranishëm.

Përgjigja e serverit:

Lloji i përmbajtjes: tekst / html; grup karakteresh = UTF-8

Transferimi-Enkodimi: i copëtuar

Lidhja: mbaj gjallë

Keep-Alive: skadimi = 5

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

Dokument pa titull

Këto janë mesazhet që shkëmbehen ndërmjet klientit dhe serverit përmes protokollit HTTP.

Nga rruga, a doni të dini nëse ka ndonjë kuptim në ndonjë element në faqen tuaj duke përdorur "qëllimet" e Yandex Metrics dhe Google Analytics?

Hiqni atë që NUK funksionon, shtoni atë që funksionon dhe dyfishoni vlerën tuaj përfundimtare.

Një kurs për vendosjen e qëllimeve Yandex Metrica ..

Një kurs për vendosjen e qëllimeve të Google Analytics ..

Klienti HTTP dërgon një kërkesë në server në formën e një mesazhi kërkese, i cili ka formatin e mëposhtëm:

  • vargun e kërkesës (kërkohet)
  • Titulli (element opsional)
  • Varg bosh (kërkohet)
  • Trupi i mesazhit (opsionale)

Le të hedhim një vështrim në secilin prej këtyre elementeve veç e veç.

Vargu i pyetjes

Vargu i kërkesës fillon me një shenjë metode, e ndjekur nga URI e kërkesës dhe versioni i protokollit. Elementet ndahen nga njëri-tjetri me hapësira:

Le ta shqyrtojmë këtë element në më shumë detaje.

Metoda e kërkesës

Ky element specifikon metodën që do të thirret në anën e serverit në URI të specifikuar.

Ekzistojnë tetë metoda në HTTP:

  • KOKË
    Përdoret për të marrë vijën e statusit dhe titullin nga serveri me URI. Nuk i ndryshon të dhënat.
  • MARR
    Përdoret për të marrë të dhëna nga serveri në URI të specifikuar. Nuk i ndryshon të dhënat.
  • POST
    Përdoret për të dërguar të dhëna në server (siç janë informacionet e zhvilluesit, etj.) duke përdorur forma HTML.
  • VENDOSJE
    Zëvendëson të gjitha të dhënat e mëparshme në burim me të dhënat e sapo ngarkuara.
  • FSHIJE
    Heq të gjitha të dhënat aktuale në burimin e specifikuar nga URI.
  • LIDH
    Krijon një lidhje tuneli me serverin në URI të specifikuar.
  • OPSIONE
    Përshkruan vetitë e lidhjes për burimin e specifikuar.
  • GJURME
    Ofron një mesazh që përmban një gjurmë të pasme të vendndodhjes së URI të burimit të specifikuar.

Kërko URI

URI (Uniform Resource Identifier) ​​është identifikuesi i burimit në të cilin është dërguar kërkesa. Formati më i zakonshëm URI tregohet më poshtë:

‘*’ përdoret kur kërkesa HTTP nuk është specifike për një burim specifik, por për një server. Përdoret vetëm kur metoda nuk ka nevojë të zbatohet në burim. Për shembull,

uri absolute përdoret kur një kërkesë HTTP i bëhet një përfaqësuesi. Proxy-it i kërkohet të kalojë kërkesën nga cache e disponueshme dhe kthen një përgjigje. Për shembull:

asbolutny_shtegu | një burim përdoret nga shumica e chatso-ve.

Mësoni të punoni me kërkesat GET dhe POST

Kërkohet një burim specifik i një serveri specifik. Për shembull, një klient dëshiron të marrë një burim nga serveri përmes portit 80. Adresa e burimit është "www.proselyte.net" dhe dërgon kërkesën e mëposhtme:

Kërkon fushat e kokës

Fushat e kokës i lejojnë klientit të kalojë informacion shtesë në lidhje me kërkesën dhe për veten në server. Këto fusha veprojnë si modifikues të kërkesës.

Më poshtë është një listë e fushave më të rëndësishme të kokës që mund të përdoren:

  • Prano-Charset
  • Prano-Enkodim
  • Prano-Gjuha
  • Autorizimi
  • presin
  • Nëse-Match
  • Nëse-Modifikuar-Që
  • Nëse-Asnjë-Përputhje
  • Nëse-Raga
  • Nëse-Unmodifikuar-Që
  • Gama
  • Referues
  • Përdorues-Agjent

Nëse duam të implementojmë klientin tonë dhe serverin tonë të internetit, atëherë mund të krijojmë fushat tona të kokës.

Shembull i kërkesës HTTP

Kjo përfundon studimin tonë të kërkesave HTTP.
Në artikullin tjetër, ne do të shikojmë përgjigjet HTTP.

Një nga mënyrat se si mund të dërgoni një kërkesë HTTP në server është një kërkesë GET. Kjo metodë është më e zakonshme dhe më shpesh kërkesat për server bëhen duke përdorur atë.

Mënyra më e lehtë për të krijuar një kërkesë GET është të shkruani URL-në në shiritin e adresave të shfletuesit tuaj.

Shfletuesi do të transmetojë informacionin e mëposhtëm në server:

GET / HTTP / 1.1
Pritësi: webgyry.info
Agjenti i përdoruesit: Mozilla / 5.0 (Windows NT 6.1; rv: 18.0) Gecko / 20100101 Firefox / 18.0
Prano: tekst / html, aplikacion / xhtml + xml, aplikacion / xml; q = 0,9, * / *; q = 0,8
Prano-Gjuha: ru-RU, ru; q = 0,8, en-US; q = 0,5, en; q = 0,3
Prano-Enkodimi: gzip, deflate
Cookie: wp-settings
Lidhja: mbaj gjallë

Kërkesa përbëhet nga dy pjesë:

1. linjë kërkesa

2.titujt (Titujt e mesazheve)

Ju lutemi vini re se kërkesa GET nuk ka një trup mesazhi. Por, kjo nuk do të thotë se me ndihmën e tij ne nuk mund të transferojmë asnjë informacion në server.

Dallimi midis metodave GET dhe POST

Kjo mund të bëhet duke përdorur parametra të veçantë GET.

Për të shtuar parametrat GET në kërkesë, duhet të vendosni një shenjë "?" në fund të URL-së. dhe pas tij, filloni t'i pyesni ata sipas rregullit të mëposhtëm:

parametri_emri1 = parametri_vlera1 & parametri_emri2 = parametri_vlera2 & ...

Ndarësi midis parametrave është shenja "&".

Për shembull, nëse duam të kalojmë dy vlera në server, emrin e përdoruesit dhe moshën e tij, atëherë kjo mund të bëhet me rreshtin e mëposhtëm:

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

Kur kjo pyetje ekzekutohet, të dhënat shkojnë në të ashtuquajturën ndryshore të mjedisit QUERY_STRING, nga e cila mund të merren në server duke përdorur gjuhën e programimit të uebit nga ana e serverit.

Këtu është një shembull se si kjo mund të bëhet në PHP.

jehonë "Emri juaj:". $ _MERRNI ["emri"]. "
»;
jehonë "Mosha juaj:". $ _GET ["mosha"]. "
»;
?>

Konstruksioni $ _GET ["parameter_name"] ju lejon të shfaqni vlerën e parametrit të kaluar.

Si rezultat i ekzekutimit të këtij kodi në shfletues, do të shfaqet sa vijon:

Emri juaj: dima
Mosha juaj: 27

ne gjithashtu bëjmë një kërkesë në server duke përdorur metodën GET.

HTTP është një protokoll transporti hipertekstik, një nga protokollet e pirgut TCP / IP. Fillimisht, protokolli u krijua për të transmetuar dhe marrë faqe HTML, por tani përdoret në mënyrë perfekte për sistemet e informacionit të shpërndarë. Është një nga protokollet më të përdorur në rrjetin botëror.

Foto 1

Bazuar në një skemë kërkesë/përgjigje. Kur një klient dërgon një kërkesë në server, ai mund ta bëjë këtë duke përdorur 3 lloje kërkesash: GET, PUT dhe POST.

GET kërkesë për protokollin HTTP

MARRËshtë kërkesa e një klienti për informacion. Shfletuesi i internetit i klientit dërgon një mesazh GET për të rrëmbyer faqet prej tij. Kërkesa ka dy pjesë:

  • varg pyetjesh
  • titujt kryesorë

Një kërkesë GET nuk ka një trup të dhënash, por kjo nuk do të thotë se nuk mund të transmetojë asnjë të dhënë në server. Duke përdorur parametra të veçantë në vargun e URL-së, mund t'i kaloni të dhënat serverit. Shenjë ? pasi domeni në URL do të thotë që parametrat do të kalojnë. Figura 2 tregon se çfarë lloj informacioni i dërgon shfletuesi serverit.

Vizatim - 2

Kërkesa për protokollin POST dhe PUT HTTP

Këto dy metoda zbatohen për të dërguar informacion në një server në internet. Për shembull, pasi i plotësojmë duke përdorur formularë të veçantë në internet, ne i dërgojmë ato në server duke përdorur metodën POST. PUT, nga ana tjetër, ngarkon burime ose të dhëna në një server në internet (foto, video).

HTTP nuk është një protokoll i sigurt dhe mesazhet POST mund të përgjohen dhe lexohen pasi nuk janë të koduara. Për sigurinë e transmetimit të të dhënave duke përdorur metodën POST, përdoret protokolli HTTPS. Ai kodon të dhënat dhe mund të vërtetojë. Ai gjithashtu zbaton kërkesa shtesë për kalimin e informacionit midis shtresave të transportit dhe aplikimit.

Dallimet kryesore midis metodave POST dhe GET tregohen në Tabelën 1.

Figura 3 tregon rregullat bazë që duhen ndjekur kur zgjidhni metodën GET ose POST për të kryer gjërat në serverin tuaj.

Artikujt kryesorë të lidhur