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.
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.