abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | Nová verze

    Byl vydán Linux Mint 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | IT novinky

    Čínská společnost Tencent uvolnila svůj AI model HunyuanWorld-Voyager pro generování videí 3D světů z jednoho obrázku a určené trajektorie kamery. Licence ale nedovoluje jeho používání na území Evropské unie, Spojeného království a Jižní Koreje.

    Ladislav Hagara | Komentářů: 1
    dnes 12:11 | Komunita

    Blender Studio se spojilo s kapelou OK Go a výsledkem je videoklip k písni Impulse Purchase. Stejně jako samotný 3D software Blender je i ve videoklipu použitý animovaný chlápek open source. Kdokoli si jej může stáhnout a upravovat.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Zig Software Foundation stojící za programovacím jazykem Zig publikovala finanční zprávu za rok 2024. Současně s prosbou o finanční příspěvek.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Nová verze

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za srpen (YouTube). Vypíchnuta je podpora Tabulek Google, implementace Gamepad API a Cookie Store API nebo také podpora WebGL na Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Komunita

    openSUSE Leap 16, včetně Leap Micra 6.2+, nově nabízí 24 měsíců podpory pro každé vydání. To je dva roky aktualizací a stability, což z něj činí nejdéle podporovanou komunitní distribuci vůbec. Leap se tak stává ideální platformou pro všechny, kdo hledají moderní, stabilní a dlouhodobě podporovanou komunitní Linux distribuci.

    lkocman | Komentářů: 0
    včera 16:33 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal dne 3. 9. 2025 VAROVÁNÍ před hrozbou v oblasti kybernetické bezpečnosti spočívající v předávání systémových a uživatelských dat do Čínské lidové republiky a ve vzdálené správě technických aktiv vykonávané z území Čínské lidové republiky. Varováním se musí zabývat povinné osoby podle zákona o kybernetické bezpečnosti.

    Ladislav Hagara | Komentářů: 27
    včera 11:55 | IT novinky

    Americká internetová společnost Google nemusí prodat svůj prohlížeč Chrome ani operační systém Android. Rozhodl o tom soud ve Washingtonu, který tak zamítl požadavek amerického ministerstva spravedlnosti. Soud ale firmě nařídil sdílet data s jinými podniky v zájmu posílení konkurence v oblasti internetového vyhledávání. Zároveň Googlu zakázal uzavírat dohody s výrobci mobilních a dalších zařízení, které by znemožňovaly

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 11:33 | Humor

    Prvního září ozbrojení policisté zatkli na na londýnském letišti Heathrow scénáristu a režiséra Grahama Linehana, známého především komediálními seriály Ajťáci, Otec Ted nebo Black Books. Během výslechu měl 57letý Graham nebezpečně zvýšený krevní tlak až na samou hranici mrtvice a proto byl z policejní stanice převezen do nemocnice. Důvodem zatčení bylo údajné podněcování násilí v jeho 'vtipných' příspěvcích na sociální síti

    … více »
    Gréta | Komentářů: 104
    včera 10:22 | Pozvánky

    Studentská dílna Macgyver zve na další Virtuální Bastlírnu - pravidelné online setkání všech, kdo mají blízko k bastlení, elektronice, IT, vědě a technice. Letní prázdniny jsou za námi a je čas probrat novinky, které se přes srpen nahromadily. Tentokrát jich je více než 50! Těšit se můžete mimo jiné na:

    Hardware – Bus Pirate na ESP32, reverse engineering Raspberry Pi, pseudo-ZX-80 na RISC-V, PicoCalc, organizéry na nářadí z pěny nebo … více »
    bkralik | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 141 hlasů
     Komentářů: 11, poslední dnes 16:12
    Rozcestník

    Souboj POST VS GET

    13.10.2009 17:09 | Přečteno: 3464× | Ostatní | poslední úprava: 13.10.2009 18:10

    Dnes jsem sice již jeden zápisek publikoval, ale momentálně stav maximálního vytočení mne nutí sepsat ještě jeden. Možná proto, abych se podělil, zároveň možná i z didaktického hlediska, abych někoho poučil, ale hlavně proto, abych tu sprostě nenadával jen do zdi. A o co se jedná? Jedná se o rozdíl v použití GET nebo POST.

    Bohužel jsem se s tím nesetkal poprvé, a vím dokonce i to, že ne naposled. Ale přijde mi už jen z názvů těchto dvou metod logické, k čemu slouží. Prvně POST, z anglického poslat, odeslat, apod. Tedy nějaká data někam odesílám, např. formulář - provádím s databází INSERT, UPDATE nebo DELETE. Naopak GET, z anglického získat, apod. Se snažím nějaká data s databáze vydolovat - provádím SELECT. U toho POSTu to je logicky dokonce ošetřeno i na úrovni prohlížeče, když se snažíte znovu načíst stránku s formulářem, který zpracovává POSTem, tak se Vás prohlížeč slušně optá, zda-li chcete data opravdu odeslat znovu - aby nedošlo k duplicitnímu vložení apod. (prohlížeč nemůže o tom, zda-li vývojář udělal nějaké zabezpečení vkládání duplicit vědět. proto se alespoň optá, zda-li to opravdu chceme udělat - znovu odeslat celý formulář).

    Proto nedokáži pochopit, jak někdo, kdo se snaží udělat filtrování výpisu dat z formuláře přes několik selectů, může formulář odeslat POSTem a uložit obsah do SESSION. Pak když si chcete stránku načíst znovu, např. z důvodu, že víte, že v DB jsou již nová data, a chcete je vypsat, tak pokaždé musíte potvrdit OK - ano opravdu chci nastavení filtru odeslat znovu.

    Vždy jsem si myslel, že to je jasné - nechci tím ze sebe dělat nějakého extra znalce a z ostatních neznalce, ale vždyť se již chování metod a dokonce i jejich názvy jasně nabízejí k tomu, k čemu jsou určeny. Navíc ještě POSTem odešleme více dat, než jen GETem. POST je v těle požadavku, GET je v hlavičce - ověřte si např. rozšířením Firebug pro FF.

           

    Hodnocení: 83 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    finc avatar 13.10.2009 17:31 finc | skóre: 8 | blog: Finc | Kolín
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    V podstate souhlas. Problem ovsem muze nastat u nekterych webovych frameworku. Napriklad takove JSF (Java), je komponentovy framework, ktery serializuje viewstate vzdy u klienta a pri novem requestu jej potrebuje pro zregenerovani komponent. Z tohoto duvodu je v JSF kazda druha ptakovina odesilana POSTem. Mam pocit, ze ASP je na tom v nekterych pripadech podobne.

    Jinak rozdeleni, co se ma odeslat pomoci GET a co pomoci POST je spise otazkou praxe. Pote jiz nepremyslite, co zvolit, ale vite presne co zvolit :)
    Kdo Vam dal pravo ty lidi urazet? A kdo ti dal pravo cumet z okna, ty kr.vo!
    Toman avatar 13.10.2009 17:33 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Ano, v zápise to možná bylo pojato až zbytečně obecně, ale konkrétní příklad, který jsem uvedl - filtrování - mi nepřijde jako šťastné, když je odesláno POSTem. Ale jak říkáte - praxe je praxe, pak jdou pravidla stranou, s tím plně souhlasím.
    13.10.2009 17:55 CEST
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    IMHO je obecne nejlepsi POSTy hned po prevedeni cinnosti presmerovat na novej GET request. Tak potom reload nepacha nic spatnyho. Pak si muze klidne formulare posilat POSTem, kdyz ale nakonec skonci na GETu s tim, ze ty data cte ze session, neni to zadnej problem.

    Taky neni obvykle moc hezky, kdyz je URL dlouhy jak svine se spoustou ruznyho bordelu. Tam se pak hodi POST i pro odesilani filtru pro cteni dat z DB.
    Toman avatar 13.10.2009 17:59 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Přesně, pokud je někde POST, je nejlepší po zpracování POSTu udělat REDIRECT.
    13.10.2009 20:12 rou7
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    +1
    mkoubik avatar 13.10.2009 20:20 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Taky neni obvykle moc hezky, kdyz je URL dlouhy jak svine se spoustou ruznyho bordelu. Tam se pak hodi POST i pro odesilani filtru pro cteni dat z DB.
    Tam samozřejmě nemá POST co dělat a ten "bordel" je v adrese proto, abys mohl někomu poslat odkaz, nebo si ho uložit do záložek a nastavení se uchovalo. Tohle uvažování (dělá to bordel v adrese, tak tam frknu POST) je přesně příklad toho, proti čemu se zápisek ohrazuje.
    16.10.2009 12:04 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Právě u filtrování smysl odesílat data postem. Nejen že si člověk zachová jednoduchou url, ale hlavně zabrání přetečení url v IE (v6?). Uchovávat data o filtraci v GET může být i chyba, pokud nemají všichni návštěvníci přístup ke stejným datům, a budou si adresy posílat.

    Optimální řešení, co se pamatuju, je odeslat formulář metodou POST a v odpovědi říct prohlížeči 303 See Other. Vyhnete se tak opakovanému odeslání formuláře, přetečení url a zachováte url hezkou (jestli doteď byla).

    Only Sith deals in absolutes.
    mkoubik avatar 16.10.2009 14:16 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Ale u filtrování není "opětovné odeslání formuláře" (jestli takhle říkáš opětovnému get požadavku na ?q=neco&sort=neco) vůbec problém, protože nemění stav serveru. Naopak jinak to udělat ani nejde (kromě toho postu, který ale dělá to samé, nebo uložení v session, které je nahovno).
    Toman avatar 16.10.2009 14:25 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Proč myslíš, že session je na hovno, když to chceš někde mít uložené po celou dobu sezení - práce se systémem. Jak bys to řešil jinak?
    mkoubik avatar 16.10.2009 14:33 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Myslim pro ukládání vyhledávaného výrazu a filtrační options. Pokud požadavek nemění stav serveru, tak by měl vrátit pokaždé stejnou stránku (pokud se nezmění data na serveru apod.). Koukni se na google.com/search - víš prd, co jsem hledal (pokud by to bylo v session).
    Toman avatar 16.10.2009 15:15 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    No, to máš pravdu - ale já měl na mysli, třeba: máš několik výrobků, a chceš vypsat pouze o jednoho výrobce, takže si ho vybereš v selectu, a odešleš tlačítkem, to se odešle GETem a uloží do SESSION - tím se vlastně vždy při návratu na danou stránku nastaví filtr tak, jak byl nastaven naposledy - než vyprší SESSION.
    18.10.2009 10:27 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Pak si otevřete druhou záložku pro jiného výrobce, vrátíte se na první a kliknete na odkaz „další“, a očekáváte dalších 10 výrobků od prvního výrobce – a mezitím vám tam naskočí dalších 10 výrobků od druhého výrobce, protože druhá záložka přepsala údaje v session.
    18.10.2009 10:50 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    To je vada na kráse, předávat všechny informace v url také nejde. Řešením by mohlo být předání session ID, to se mi ale vůbec nelíbí.

    Podobná situace ale nastane například i tehdy, když se někdo v druhém tabu pokusí přihlásit pod jiným účtem.
    Only Sith deals in absolutes.
    18.10.2009 13:37 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Proč by to nešlo předávat v URL? Pokud jsem na seznamu výrobků od jednoho výrobce, je přirozené, že ta stránka bude mít adresu /vyrobci/vyrobce-X. Zkuste na chvíli zapomenout na databáze a dynamické generování stránek a představit si, že web generujete jednorázově do statických stránek – myslím, že hned budete vědět, jak by vypadala jednotlivá URL.
    18.10.2009 14:07 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Proti předávání parametrů v url jsem v tomto konkrétním případě proto, že těch parametrů může být pěkná spousta. Setkal jsem se s tím, že původní návrh se udělal podobnějak píšete /vyrobci/vyrobce-X. Časem přibývali dodavatelé (a další možnosti hledání) a nakonec vše skončilo u IE tím, že URl byla delší než 2083 znaků.
    Only Sith deals in absolutes.
    18.10.2009 14:23 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Pan nezbývá než v UR nechat jen ty podstatné parametry a zbytek uložit do session, přičemž ale sessionID bude v URL.
    18.10.2009 14:50 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Ve výsledku stejně nemůže zákazník poslat URL kolegovi/kamarádovi, protože by mu dal své session ID. To ale neví a klidně to udělá; tím okamžikem máme horší problém, objednávky chodí špatné osobě atd. V nejlepším případě vynechá své sessionID a druhá strana dostane možná podobný výsledek, ale možná úplně jiný.

    Na záložky (bookmarks, oblíbené…) také nemůže spoléhat, protože o session může přes víkend přijít (navíc pravidelná změna sessionID zvyšuje bezpečnost).
    Only Sith deals in absolutes.
    Toman avatar 18.10.2009 15:19 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Tak jak efektivně řešit? :-)
    18.10.2009 15:38 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Vyber si jedno nebo druhé řešení a smiř se s omezeními.
    Only Sith deals in absolutes.
    18.10.2009 15:49 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    SessionID s údaji o přihlášeném uživateli nemusí být shodné se sessionID s údaji o aktivním filtru. Jak jsem psal, podstatné parametry by měly být v URL, takže by druhá strana neměla dostat podstatně odlišný výsledek. Pokud vás opravdu trápí délka URL, nemusíte tam dávat popisné názvy, stačí jen kódy – a pak můžete do URL schovat celkem hodně.
    16.10.2009 14:53 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Data poslaná metodou POST se samozřejmě zpracují a uloží do session. Proč? Například když mám katalog zboží (e-shop), tak si nechci přeci pokaždé klikat na formulář, aby se produkty řadily v kategorii podle ceny. Nebudu ani ke každému odkazu připisovat parametry, které by se na odkazované stránce mohly hodit.
    Only Sith deals in absolutes.
    mkoubik avatar 13.10.2009 20:23 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Jinak s prvním odstavcem samozřejmě souhlas.
    13.10.2009 23:06 Kvakor
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Pokud si to ještě pamatuju z RFC, tak zatímco u GET se předpokládá, že se pro každé jednotlivé URL stav nebude měnit (a tudíž se může cachovat), u POSTu se naopak počítá, že se stav měnit bude a tudiž se cachovat nesmí. U GETu se navíc ještě předpokládá že je idempotentní, tj. že jeho opakované použití by mělo vrátit stejný výsledek nezávisle na tom, kolikrát proběhlo opakování.

    V praxi se bohužel na uvedené zásady kašle :-(
    xxx avatar 13.10.2009 23:32 xxx | skóre: 42 | blog: Na Kafíčko
    Rozbalit Rozbalit vše Re: Souboj POST VS GET

    Ja myslim, ze ten problem je, ze jaksi tvurci HTTP nepredpokladali, ze lidi do nej budou chtit balit vsechna ta hejblatka, blikatka a jine interaktvni kokotiny co se dnes na webu objevuji.

    BTW: jak je myslena ta idempotence. To jako, ze si treba muzu vybrat zobrazit data za poslednich 5/10/15 minut. Je to idmepotentni, protoze furt dostanu data za stejny casovy interval, nebo to neni idempotentni, protoze ty data samotna jsou jina? Pokud to je druha moznost, tak si nedokazu predstavit jaka data by to mohla splnovat.

    Please rise for the Futurama theme song.
    14.10.2009 00:22 Kvakor
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    K té idempotenci - pokud si to dobře pamatuju, jde hlavně o to, že u GETu by nemělo vadit, jestli najednou dorazil jeden nebo třeba pět GET požadavků, vrácená data by měla být stejná. Např. pokud uživatel ztratí trpělivost a několikrát máčkne na Reload, měl by dostat stejná data, jako kdyby na Reload nemačkal a vyčkal času jako husa klasu.

    Jinak řečeno, nejde o to, jak se data mění během času (to má na starosti cachování a nastavování platnosti stránky), ale jestli záleží na počtu volání požadavků při vrácení výsledku.
    14.10.2009 11:28 loketnik
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Naprosty souhlas. Nekteri radoby vyvojari obcas vymysleji absolutni harakiri a hlavne uplne zbytecne v tomto pripade.
    Luboš Doležel (Doli) avatar 14.10.2009 14:23 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    V tomhle jsou úžasné weby dělané v ASP.NET, kde vývojář všude nacpe javascript:__doPostBack()...
    14.10.2009 15:36 miho | skóre: 24 | blog: Mihovy_sochory | Orlová
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Nikoliv, vývojář nic takového nedělá a často ani neví, jak to uvnitř funguje. To vygeneruje .net sám za běhu. Vývojář jen z toolbaru přetáhne nejakou komponentu do webové stránky, případně u ní nastaví vlastnost autoPostBack, dvakrat na ní klikne, otevře se mu editor s připravenou kostrou metody, ktera danou událost obslouží ;-)

    mkoubik avatar 15.10.2009 23:04 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Tohle je obecně bolest komponentových frameworků, ať už je to .NET, JSF, nebo PHP4Applications. Prostě pokoušet se naroubovat postupy z tvorby GUI aplikací na bezstavový HTTP je jeden z hlubokých přešlapů lidstva, na který, když ne my, tak příští generace určitě krvavě doplatí.
    15.10.2009 23:18 dark
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Ale ty aplikace se pak tvoří rychleji. Já osobně si v js dokážu napsat cokoliv, ale nedivím se lidem, co v js psát nechcou a raději použijou komponentní frameworky, např asp.net nebo wicket.
    mkoubik avatar 16.10.2009 14:29 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Věř mi, že existují nekomponentové frameworky, ve kterých se tvoří aplikace rychleji. Např v Nette nejsou klasické postbackové komponenty (jak říká DG "pravoúhlé oblasti stránky"), ale pouze autonomní čási aplikace, které si uchovávají stav aplikace na serveru a ne v hidden polích a dají se (různými způsoby) vypsat (i vícekrát) na stránku.

    Při kliknutí na odkaz (s vypnutým javascriptem - tzn href=) ti vrátí stránku s aktuálním stavem všech komponent, pokud máš zapnutý ajax a povolený javascript (tzn. onclick), tak se vrátí json objekt s obsahem změněných komponent a ty se překreslí javascriptem. Ajax nikdy nebyl jednodušší (v podstatě $presenter->isAjax=true;) a přístupnější (Žádný prasárny typu <a href="javascript:..." nebo <a href="#" onclick="..."). Pokud máš vypnutý javascript, nebo klikneš prostředním tlačítkem ve firefoxu, tak se ti otevře stejná stránka jako by byl výsledek ajaxu, akorát s refreshem.

    Změny stavu se provádí jednoduchým getem, ve kterém je jenom změnění proměnná (následně refresh), nebo pomocí post-redirect-get (podle účelu), vybrané proměnné si můžeš vytáhnout do url.
    18.10.2009 12:06 dark
    Rozbalit Rozbalit vše Re: Souboj POST VS GET
    Tak funguje ale hodně frameworků, v prvé řadě jde o to, kdo s tím dělá, a jaké má znalosti. Já osobně PHP nepoužívám, a doufám, že už nikdy nebudu muset;-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.