Lehet, hogy hallott már a GET és POST kérésekről, de ezek csak a kezdet.

Minden HTTP-kérelem egy módszert használ az alapvető céljának leírására. Mindegyik módszernek sajátos felhasználása van a feladatokhoz, a weboldal lekérésétől az erőforrás törléséig. A GET és a POST a két legismertebb, de van még hét másik.

Ismerje meg ezt a koncepciót és azt, hogy a kilenc lehetséges HTTP-módszer mire való.

Mi az a HTTP-módszer?

Minden HTTP-kérelem tartalmaz egy műveletet és egy célt az adott művelethez, hasonlóan az objektumként működő igéhez és főnévhez.

Az URL egy egyedi erőforrást azonosít, amely a kérés célpontjaként működik. Eközben az igét – milyen műveletet kell végrehajtani az URL-en – egy metódus képviseli.

A HTTP-kérés első sora tartalmazza a legfontosabb információkat, beleértve a HTTP-verziót, az erőforrás URL-címét és a kérés módszerét:

Szerezze be a /software/htp/cics/index.html HTTP/1.1-et

Mi a 9 HTTP-módszer?

Az első négy módszer a CRUD modell négy műveletének megfelelői: Létrehozás, Olvasás, Frissítés és Törlés. A megfelelő HTTP metódusok POST, KAP, PUT, és TÖRÖL.

instagram viewer

KAP

A leggyakoribb, alapértelmezett kérés, amelyet akkor küld, amikor az interneten böngészik, és hivatkozásokra kattint, vagy adatokat kér API-n keresztül. A szervernek vissza kell adnia az erőforrást a választörzsben.

POST

Használja a POST-t új erőforrások létrehozásához, különösen akkor, ha ezek az erőforrások azonosítható szülő erőforrással rendelkeznek. Például, ha rendelkezik egy /clients erőforrással, akkor hozzon létre egy új klienst úgy, hogy elküldi a szükséges adatokat a /clients-be.

PUT

Frissítsen vagy cseréljen egy meglévő erőforrást. Ez hasonló a POST-hoz, de az ügyfél felelős az erőforrás egyedi azonosítójának kiválasztásáért. Erőforrás PUT használatával történő létrehozásához az erőforrás URL-jének tartalmaznia kell egy azonosítót, például /clients/007.

TÖRÖL

Ezzel a módszerrel törölheti az URL-ben megadott erőforrást. Mint minden HTTP-módszer, a támogatás a kiszolgálón múlik. Lehetséges, hogy bárki töröljön egy erőforrást, bár ez egyértelműen kockázatos lenne. A DELETE-t támogató szerverre általában szükség lesz hitelesítés és engedélyezés.

Két másik módszer némi eltérést biztosít a fentiekhez képest: TAPASZ és FEJ. Hasznosnak találhatja őket bizonyos API-k használatakor, vagy saját készítésekor.

TAPASZ

A PATCH metódus frissít egy meglévő erőforrást, csak részadatokkal. Más szóval, nem kell megadnia az új erőforrás teljes reprezentációját, csak a frissítendő mezőket.

FEJ

A HEAD kérés akkor való, ha egy erőforrásról szeretne információkat, de magáról az erőforrásról nem. A válasz nem tartalmaz törzset, de tartalmaz egy sor hasznos HTTP-fejlécet. A letöltés előtt megtudhatja a fájl teljes méretét a Content-Length válaszfejlécben.

A többi módszer -LEHETŐSÉGEK, KAPCSOLAT, és NYOM- homályosabbak. Metaadatokkal, hálózatépítéssel és hibaelhárítással foglalkoznak. Hasznosnak találhatja őket bizonyos típusú programozásban, de valószínűleg nem fogja használni őket minden nap.

LEHETŐSÉGEK

A szervernek úgy kell válaszolnia erre a módszerre, hogy megmondja, hogy az erőforrás valójában mely HTTP-metódusokat támogatja. Ez hasznos lehet a felfedezéshez.

KAPCSOLAT

Bizonyos típusú hálózati szoftverek ezt a módszert használhatják két számítógép közötti alagút létrehozására. Ezt gyakran használják HTTPS-kapcsolat kezdeményezésére proxyn keresztül.

NYOM

Ez a módszer hasznos a hibaelhárításhoz. Beérkezésekor a szervernek vissza kell küldenie a választörzsben kapott kérést. A módszer mechanizmust biztosít annak ellenőrzésére, hogy a köztes gépek megváltoztatták-e a kérés bármely részletét.

A GET és a HEAD az egyetlen két módszer, amelyet minden általános webszerver támogat. Egy adott szerver támogathat más módszereket, de lehet, hogy nem, ezért először ellenőriznie kell.

Mikor használhatja ezeket a módszereket?

A HTTP-módszerek legtöbbször átláthatóak lesznek az Ön számára. Azonban ezeket figyelembe kell vennie, ha űrlapot ad hozzá egy weboldalhoz, vagy API-t használ.

HTTP-módszerek a HTML-ben

A forma elemét módszer attribútum segítségével beállíthatja az űrlap elküldésekor használandó HTTP metódust. A HTML csak a hozzászólás és kap értékei ehhez az attribútumhoz – plusz egy homályos párbeszédpanel alternatíva.

<formamódszer="posta">
...
forma>

Olyan funkciókat használhat, mint pl A Chrome fejlesztői eszközei Megtekinteni Hálózat forgalmat, és erősítse meg, hogy a böngészője milyen módszert küld egy adott kérelemhez. Ne feledje, hogy a legtöbb webes űrlap POST-ot küld, mivel általában frissítik az adatokat a kiszolgálón. Sok keresési űrlap azonban használja a GET-et, mivel egyszerűen lekéri az adatokat anélkül, hogy megváltoztatná azokat.

Mivel a POST-adatok nem részei az URL-nek, sokkal privátabbak, mintha GET-en keresztül küldené el. Az adatok továbbra is megtalálhatók a kérelem törzsében, ahol elméletileg a támadó elfoghatja azokat. De a HTTPS-en keresztüli adatküldés mérsékelheti ezt a problémát.

Soha ne valósítson meg felhasználói bejelentkezést GET-kérésekkel. Annak ellenére, hogy a bejelentkezés inkább olvasási műveletnek tűnik, mint létrehozásnak vagy frissítésnek, az adatok védelméhez továbbra is POST-ot kell használnia.

Mivel a HTML-űrlapok csak a GET-et és a POST-t támogatják, nem hozhat létre közvetlenül olyan űrlapot, amely például egy erőforrást töröl a kiszolgálón. Egy gyakori megoldás, amely tiszteletben tartja a REST elveket a szerveren, egy helyőrző változó használata, és úgy tesz, mintha ez lenne az eredeti HTTP-módszer. Például:

<formamódszer="posta">
<bemenettípus="rejtett"név="_módszer"érték="TÖRÖL" />
...
forma>

A szerveroldali kód ellenőrizheti a „proxy method” változó jelenlétét, és úgy kezelheti, mintha ez lenne a használt módszer. Például PHP-ben:

$módszer = $_SZERVER["REQUEST_METHOD"];

ha (tömb_kulcs_exists("_módszer", $_REQUEST)) {
$módszer = $_REQUEST["_módszer"];
}

HTTP-kérések programozott küldése

A Web Fetch API egy fetch() JavaScript függvényt biztosít, amellyel HTTP kérést küldhet. A módszerek teljes skáláját támogatja, nem csak a GET-et és a POST-ot, amelyet a HTML támogat.

A lekérés funkció alapértelmezés szerint GET kérést küld. Másik módszer használatához adja meg a nevét az a értékeként módszer tulajdonság egy objektumban, amelyet második argumentumként küld el.

fetch(' https://example.com/', { módszer: "FEJ" });

Számos szerveroldali nyelvről is küldhet HTTP kéréseket, beleértve a PHP-t is. Ezen a nyelven a curl könyvtár az ilyen kérések elküldésének általános módja.

A curl könyvtár rendelkezik egy CURLOPT_CUSTOMREQUEST beállítással, amellyel megadhat egy metódust

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

A parancssoron keresztül

A curl parancssori eszköz lehetővé teszi az adatok átvitelét egy szerverre vagy egy szerverről, több protokoll egyikén keresztül. A HTTP (és a HTTPS) két nagyon gyakori használati eset.

Alapértelmezés szerint a curl GET kérést küld, amit a következő paranccsal erősíthet meg:

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

A kérés módszerét a kimenet ötödik sorában láthatja:

Módosíthatja a curl által elküldött kérési módot az -X jelzővel:

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

Most a curl kérést küld a POST módszerrel:

A HTTP-nek számos felhasználási módja van

A weben végzett tevékenységeinek nagy része szabványos GET-kérésekkel jár, és alkalmanként POST-t kell küldenie az űrlapok beküldéséhez. De a HTTP sokkal kifejezőbb protokoll, mint azt ez sugallja.

A leggyakoribb módszerek némelyike ​​a CRUD modellt tükrözi, amely a HTTP-t kiváló alapot nyújt egy erőforrás-központú API felépítéséhez.