Jaký je rozdíl mezi HTTP GET a HTTP POST?

GET vs. POST

Přesně řečeno, rozdíl mezi GET a POST spočívá ve způsobu přenosu aplikací. Informace v GET jsou přenášeny v URL. Pokud jste někdy viděli adresu URL, která obsahuje otazníky a symboly sjednocení, hledali jste požadavek GET: example.com/request.php?var1=foo&var2=bar je řetězec GET, který kóduje proměnnou „var1“ jako "foo" a proměnná "var2" jako "bar". Informace POST jsou zahrnuty v těle žádosti a nejsou viditelné v řetězci URL (a proto nejsou pro uživatele viditelné).

Formální pokyny

Formálně směrnice HTML říkají, že GET by měl být použit pro "idempotentní" požadavky nebo požadavky, které nic nemění. Představte si například webovou stránku, která vrací místní počasí: „example.com/weather.php?zipcode=12345“. Akt podání této žádosti znovu a znovu nic nezmění. POST by měl být použit pro žádosti, které nejsou idempotentní. Předpokládejme například, že jste nakupovali pomocí své kreditní karty. Podávání této žádosti znovu a znovu může vést k poměrně velkým změnám. Protože opětovné odeslání požadavku POST má důsledky (i když jsou malé), webové prohlížeče obvykle uživateli zobrazí požadavek, aby potvrdili, že opravdu chtějí znovu odeslat dotazový formulář.

ZÍSKEJTE výhody

GET má oproti POST řadu výhod. Protože GET je kódován jako součást URL, můžete vyjmout a vložit URL a sdílet ji s ostatními. Požadavky GET lze také označit. Pokud pravidelně kontrolujete počasí, můžete do lišty „Oblíbené“ v prohlížeči přidat „example.com/weather.php?zipcode=12345“, takže kliknutím na tento odkaz se automaticky načte vaše vlastní stránka počasí. Protože požadavky GET jsou viditelné (a upravitelné) uživatelem, mohou být také hacknuty. Pokud například meteorologické místo nenabídlo zjevný způsob, jak změnit umístění časového požadavku, můžete ručně změnit „12345“ na „99762“ a podívat se na počasí v Nome na Aljašce místo počasí v Schenectady.

Kdy použít POST

I v situacích, které jsou idempotentní, má POST příležitostné jasné použití. Některé z nich jsou založeny na bezpečnosti nebo zákonnosti. Proměnné GET jsou přenášeny „jasně“, protože prostřednictvím GET nechcete posílat informace o kreditních kartách, číslech sociálního zabezpečení, heslech nebo důvěrných uživatelských informacích. Protože data POST ztmavnou, je v těchto situacích vhodnější. POST se také používá pro přenos velkého množství dat, i když data nejsou citlivá. Technicky mohou být adresy URL (a tedy GET proměnné) dlouhé. Protože však mnoho prohlížečů omezuje, kolik místa může mít adresa URL, je GET obecně považován za dostatečný pouze pro relativně krátké požadavky.

Zajímavé Články