Võib-olla olete kuulnud GET- ja POST-päringutest, kuid need on alles algus.

Iga HTTP päring kasutab oma põhieesmärgi kirjeldamiseks meetodit. Igal meetodil on ülesannete jaoks konkreetsed kasutusalad alates veebilehe toomisest kuni ressursi kustutamiseni. GET ja POST on kaks kõige tuttavamat, kuid on veel seitse.

Lugege selle kontseptsiooni ja selle kohta, milleks kõik üheksa võimalikku HTTP-meetodit on mõeldud.

Mis on HTTP-meetod?

Iga teie tehtud HTTP-päring sisaldab toimingut ja selle toimingu sihtmärki, sarnaselt tegusõna ja nimisõnaga, mis toimivad objektina.

URL identifitseerib ainulaadse ressursi, mis toimib päringu sihtmärgina. Samal ajal tähistab tegusõna – milliseid toiminguid sellel URL-il teha – meetod.

HTTP-päringu esimene rida sisaldab kõige olulisemat teavet, sealhulgas HTTP versiooni, ressursi URL-i ja päringumeetodit:

HANKIGE /software/htp/cics/index.html HTTP/1.1

Mis on 9 HTTP-meetodit?

Esimesed neli meetodit on CRUD-mudeli nelja toimingu ekvivalendid: loomine, lugemine, värskendamine ja kustutamine. Vastavad HTTP-meetodid on POSTITA, SAADA, PANGEja KUSTUTA.

instagram viewer

SAADA

Kõige tavalisem vaikepäring, mille saadate veebi sirvides ja linkidel klõpsates või API kaudu andmeid taotledes. Server peaks tagastama ressursi oma vastuse kehas.

POSTITA

Kasutage POST-i uute ressursside loomiseks, eriti kui neil ressurssidel on tuvastatav ülemressurss. Näiteks kui teil on /kliendid ressurss, peaksite looma uue kliendi, postitades vajalikud andmed /kliendid.

PANGE

Värskendage või asendage olemasolev ressurss. See sarnaneb POST-iga, kuid klient vastutab ressursi kordumatu identifikaatori valimise eest. PUT-i abil ressursi loomiseks peaks ressursi URL sisaldama identifikaatorit, näiteks /clients/007.

KUSTUTA

Kasutage seda meetodit URL-is määratud ressursi kustutamiseks. Nagu kõik HTTP-meetodid, on tugi serveril. See võib lubada kellelgi ressursi kustutada, kuigi see oleks ilmselgelt riskantne. Tavaliselt nõuab DELETE'i toetav server autentimine ja autoriseerimine.

Kaks muud meetodit pakuvad ülaltoodule mõningaid erinevusi: PLAASTER ja PEA. Need võivad olla kasulikud teatud API-de kasutamisel või omaenda loomisel.

PLAASTER

PATCH-meetod värskendab olemasolevat ressurssi ainult osaliste andmetega. Teisisõnu, te ei pea esitama uue ressursi täielikku esitust, vaid ainult väljad, mida peate värskendama.

PEA

HEAD-i päring on mõeldud siis, kui soovite teavet ressursi kohta, kuid mitte ressursi enda kohta. Vastus ei sisalda keha, kuid sisaldab kasulikke HTTP-päiseid. Faili kogusuuruse saate teada enne selle allalaadimist vastuse päise Content-Length kaudu.

Ülejäänud meetodid -VALIKUD, ÜHENDAja JÄLG- on ebaselgemad. Nad tegelevad metaandmete, võrgu loomise ja tõrkeotsinguga. Need võivad teile teatud tüüpi programmeerimisel kasulikuks osutuda, kuid tõenäoliselt ei kasuta te neid iga päev.

VALIKUD

Server peaks sellele meetodile vastama, teatades teile, milliseid HTTP-meetodeid ressurss tegelikult toetab. See võib olla avastamiseks kasulik.

ÜHENDA

Teatud tüüpi võrgutarkvara võib seda meetodit kasutada kahe arvuti vahelise tunneli loomiseks. Seda kasutatakse sageli HTTPS-ühenduse loomiseks puhverserveri kaudu.

JÄLG

See meetod on tõrkeotsingu jaoks kasulik. Selle vastuvõtmisel peaks server saatma vastuseks saadud päringu tagasi. Meetod pakub mehhanismi kontrollimaks, kas vahepealsed masinad on päringu üksikasju muutnud.

GET ja HEAD on ainsad kaks meetodit, mida iga üldine veebiserver toetab. Konkreetne server võib, kuid ei pruugi toetada muid meetodeid, seega peaksite esmalt kontrollima.

Millal saate neid meetodeid kasutada?

Suure osa ajast on HTTP-meetodid teile läbipaistvad. Kui lisate veebilehele vormi või kasutate API-t, peate neid siiski arvesse võtma.

HTTP-meetodid HTML-is

The vormi elemendid meetod atribuut võimaldab määrata vormi esitamisel kasutatava HTTP-meetodi. HTML toetab ainult postitus ja saada selle atribuudi väärtused – pluss ebaselge dialoogialternatiiv.

<vormimeetod="postitus">
...
vormi>

Saate kasutada selliseid funktsioone nagu Chrome'i arendaja tööriistad vaatama Võrk liiklust ja kinnitage meetod, mille teie brauser konkreetse päringu jaoks saadab. Pange tähele, et enamik veebivorme saadab POST-i, kuna need värskendavad tavaliselt andmeid serveris. Paljud otsinguvormid kasutavad aga GET-i, kuna need lihtsalt toovad andmeid ilma neid muutmata.

Kuna POST-andmed ei ole URL-i osa, on need privaatsemad kui siis, kui saadate need GET-i kaudu. Andmed on endiselt päringu sisus olemas, kus teoreetiliselt võib ründaja need kinni pidada. Kuid andmete saatmine HTTPS-i kaudu peaks seda probleemi leevendama.

Te ei tohiks kunagi rakendada kasutaja sisselogimist GET-päringutega. Kuigi sisselogimine võib tunduda pigem lugemistoimingu kui loomise või värskendamisena, peate siiski andmete kaitsmiseks kasutama POST-i.

Kuna HTML-vormid toetavad ainult GET-i ja POST-i, ei saa te otse luua vormi, mis näiteks serverist ressursi kustutab. Levinud lahendus, mis austab serveris REST-põhimõtteid, on kasutada kohatäite muutujat ja teeselda, et see oli algne HTTP-meetod. Näiteks:

<vormimeetod="postitus">
<sisendtüüp="peidetud"nimi="_meetod"väärtus="DELETE" />
...
vormi>

Teie serveripoolne kood saab kontrollida selle muutuja „puhverserveri meetod” olemasolu ja käsitleda seda nii, nagu oleks see tegelik kasutatud meetod. Näiteks PHP-s:

$meetod = $_SERVER["REQUEST_METHOD"];

kui (massiivi_võti_exists("_meetod", $_REQUEST)) {
$meetod = $_TAOTLUS["_meetod"];
}

HTTP-päringute programmiline saatmine

Web Fetch API pakub Fetch() JavaScripti funktsiooni, mida saate kasutada HTTP päringu saatmiseks. See toetab kõiki meetodeid, mitte ainult GET ja POST, mida HTML toetab.

Too funktsioon saadab vaikimisi GET-päringu. Muu meetodi kasutamiseks määrake a väärtuseks selle nimi meetod atribuut objektis, mille saadate teise argumendina.

tõmba(' https://example.com/', { meetod: "PEA" });

Samuti saate saata HTTP-päringuid paljudest serveripoolsetest keeltest, sealhulgas PHP-st. Selles keeles on lokkide teek levinud viis selliste päringute saatmiseks.

Curl teegis on suvand CURLOPT_CUSTOMREQUEST, mille saate määrata meetodi määramiseks

kui ($ch = curl_init($url)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PANE');
curl_exec($ch);
// ...
}

Käsurea kaudu

Curl käsurea tööriist võimaldab edastada andmeid serverisse või serverist ühe mitmest protokollist. HTTP (ja HTTPS) on kaks väga levinud kasutusjuhtu.

Vaikimisi saadab curl GET-päringu, mida saate kinnitada järgmise käsuga:

curl -v -s -o /dev/null example.com/get-test

Taotlusmeetodit näete väljundi viiendal real:

Saate muuta päringu meetodit, mida curl saadab lipu -X abil:

curl -v -s -o /dev/null example.com/get-test -X POST

Nüüd saadab curl päringu, kasutades POST-meetodit:

HTTP-l on palju kasutusvõimalusi

Suurem osa sellest, mida teete veebis, hõlmab standardseid GET-päringuid, koos vormide esitamise korral aeg-ajalt POST-iga. Kuid HTTP on palju väljendusrikkam protokoll, kui see eeldab.

Mõned levinumad meetodid peegeldavad CRUD-mudelit, mis teeb HTTP-st suurepärase aluse ressursile keskendunud API loomiseks.