A post metódussal nagyobb szövegeket is lehet küldeni, ha jól tudom, plusz biztonságosabb is, mivel a webcímek mögé írt változók (?valtozo=ertek) GET metódussal adódnak át. Mindenképp ajánlott posttal küldeni, a túloldalon pedig globális tömbből előhúzni. Feltéve, hogy php-t használsz, így csináld:
A post ... biztonságosabb. ... Mindenképp ajánlott posttal küldeni
Ez hülyeség!
Attól függ mit akarsz csinálni. Pl. jópár hete írtam egy javaslatot a PolyMeta.hu szerkesztőinek, hogy ajánlatos lenne get metódussal küldeniük, és megjeleníteniük az adatokat, hogy lehessen látni, hogy mire kerestek.
Így egy weblapstatisztikát nézve lehetne csodálkozni, hogy jé, a polymeta így is megtalált minket. - Ha posttal küldik, a statisztikában nem látsz semmit erre vonatkozóan.
De felhasználói adatokat (felhasználói név, jelszó, munkamenet azonosító) nem ajánlatos get-tel küldeni. Nem azért, mert az adatküldés módja kevésbbé biztonságos, hanem mert az okos felhasználó - ahogy már tapaszataltam egy fórumon - fogja, és kimásolja az url-t, és elküldi valakinek, az a valaki meg máris a másik nevében tevékenykedhet a weblapon.
Szóval, akkor most melyik a jobb a post vagy a get?
Megjegyzem: A PolyMeta-nak majdnem egy hónapja írtam, azóta sem változtattak, csak annyit írtak, hogy ez bonyolult dolog, és még gondolkodnak rajta.
Azért legtöbbször érdemesebb postot használni. De ha belegondolsz, mi baj lehet abból, ha posttal küldesz valamit? Biztonsági dologra gondolok, nempedig használhatóságra.
Megjegyzem a polymeta.hu nem megy js nélkül. Szép js-sel meg minden, de azért annak is örülnénk.
az "elvetemült ötletedet" azért itt is meg lehetne említeni. persze az egy elég speciális helyzet, mert én sem mondanám a postot általában biztonságosabbnak a getnél, de azért gondolom itt a helye. ;]
Tiny véleményére lettem volna kíváncsi, csak mert elég gyakran lehet találkozni azzal, hogy valaki úgy hangoztat "tipikusan elfogadott" dolgokat, hogy nem tudja a pontos hátteret. Ez szerintem némileg veszélyes hozzáállás, mert könnyen visszaüthet.
Ez eléggé elvetemült. Egyébként pont fordított gondolkodás miatt írtam azt, amit írtam. Mivel nem tudtam olyan helyzetet elképzelni, amiben posttal adnak át akármit és baj lenne belőle.
Az elején pedig a "mindenképpen"-t arra értettem, hogy csúnya lesz tőle a cím, itt a keresők nem jutottak eszembe. De azt hiszem normális esetet én sem tudok felhozni. Ember vagyok, tévedhetek :)
szerk.: A példában tudom, hogy a hiba volt a gond nem pedig, hogy aki később odaül a géphez az megtudja a fhnevet.
Azért legtöbbször érdemesebb postot használni. De ha belegondolsz, mi baj lehet abból, ha posttal küldesz valamit?
1.) Nem tudom elmenteni a weboldal címét, amit a rengeteg adat közül kibányásztam?
2.) stb. - pl. PolyMeta történet.
Ha lehet valami értelmes dolgot kezdeni a webcímmel, akkor get, egyébként post. Pl. get keresésnél, fórumnál, számolásoknál, stb.; bináris adatoknál, személyhez köthető adatoknál post. De az úgy nem igaz, hogy a post mindenképpen jobb a getnél.
Megjegyzem a polymeta.hu nem megy js nélkül.
Ez miért lenne baj?
Szerintem koncepció, hogy így működik. Egy működő alkalmazás MorphoLogic alapokon. Csak reklám, hogy a többi termékeiket eladhassák. Így aztán tesznek rá, hogy hogyan működik. Írtam nekik, hogy modemen elég zavaró, hogy ha lapozol, akkor letöltésig nem történik semmi. A tapasztalatlan felhasználó elkezdhet vadul klikkelni, hogy mi az, miért nem csinál semmit. Ezzel terhelve a szervert. - Na most megjavították. :) - Klikkelés után teljesen eltűnik a lapozósáv. - Szerintük ez jelezné, hogy a közeli jövőben valami történi fog az oldalon. - Miért nem lehetett már egy gif animációt kirakni, vagy legalább egy "töltés folyamatban..." feliratot?
Én is teszek rá, csak megjegyeztem. A felső résznél meg a baj szó a hangsúlyos, de ha előbbre olvasod megérted. De már eltértünk a tárgytól, a PolyMeta lényegtelen.
Erre válaszoltam is. Baj, ha get-et kellene használni, és mégis post-ot használsz. Az egyik oldalon sajnálkozol, hogy a PolyMeta javascript nélkül nem megy, a másikon meg szerinted mindig postot kellene használni.
Úgye, hogy mégsem tértünk el annyira a PolyMeta történettel?
de ha előbbre olvasod megérted
Bocs, ha megsértettelek valamivel. Nem akartam semmi hasonlót!
Az egyik oldalon sajnálkozol, hogy a PolyMeta javascript nélkül nem megy, a másikon meg szerinted mindig postot kellene használni.
Nem értem az összefüggést a kettő közt, de nem sajnálkoztam, mert én nem fogom használni.
Baj, ha get-et kellene használni, és mégis post-ot használsz.
erre itt a válasz:
Biztonsági dologra gondolok, nempedig használhatóságra.
De ha a másik szálat elolvastad, ott már ezt is megtárgyaltuk.
Nem sértettél meg, csak néha bosszantani tud, ha felhívom a figyelmet valamire és akkor se olvassák el.
Én azt tudom, hogy a GET sokkal praktikusabb a weblap integrációhoz. (Teszem azt, csinálhatok egy böngészőeszköztárat, amivel az ember be tud lépni az e-mailjeihez (pl.: login.php?usr=FELHASZNÁLÓ&pw=JELSZÓ_HASH), vagy kereshet vele egy adott weblapon (pl.: serch.php?q=KERESETT_SZAVAK). Ami a biztonságot illeti, bejelentkeztethetsz GET-tel is. Csak a jelszó helyett egy hash-et küldj el.
Először is, a biztonságról: igazából mindegyik nagyon könnyen lehallgatható. A naplózásokkor viszont gyakorlatilag az URL mindig mentésre kerül, a kérés törzse pedig gyakorlatilag soha. Tehát a GET-tel küldött adatok belekerülnek a webszerver logba, a proxy logba, és még ki tudja hova. A POST-tal küldöttek viszont tárolásra nem nagyon kerülnek.
A GET-tel küldött adatok mennyiségére van korlát, több mindentől függ, de általában néhány kilobyte maximum. POST-tal gyakorlatilag tetszőlegesen sok adatot lehet küldeni.
Egy alapelv, amit érdemes követni: ha egy kérés tartalmat küld vissza, akkor azt GET-tel kell érdemes csinálni. És amit GET-tel küldenek, az ne okozzon változást az adatbázisban. Ez alól kivétel a naplózó jellegű dolgok, tehát pl. 1-gyel növelem annak a számát, hogy hányszor nézték meg az adott dolgot stb.
Ha egy kérés változásokat okoz az adatbázisban, akkor azt POST-tal kell küldeni. Amit pedig POST-tal küldenek, az ne jelenítsen meg tartalmat, hanem egy Redirect-et adjon vissza a POST után megjelenítendő tartalomra, amit már GET-tel fog lekérni a böngésző. Ezzel elkerülhető az üzenet, amit a böngésző POST-olt oldal frissítésekor jelenít meg, hogy az oldal az elküldött információkból épült fel; valamit nem fordul elő, hogy emiatt kétszer lesz POST-olva a kérés.
A bejelentkezésre a legjobb módszer, hogy POST-tal megy a név/jelszó, aztán Redirect vissza a főoldalra vagy oda, ahonnan történt a bejelentkezés.
Persze van néhány kivétel, amikor megjelenítendő tartalomnál is muszáj POST-ot használni, pl. amikor egy hozzászólást küldünk ellenőrzésre, ekkor egyrészt a hosszú szöveget el kell küldeni valahogy, ami csak POST-tal megy, másrészt adatbázisban tárolás nélkül meg is kell jeleníteni.
Sziasztok!
Egy gyors kérdés: Van egy admin felületem, és pl ha egy bejegyzést akarok kezelni, ami egy adatbázisban van, akkor az azonosítóját, amivel az adatbázisból kikeresem GET-tel vagy POST-tal érdemes elküldeni? A fenti hozzászólásokból arra gondolok, hogy gyakorlatilag teljesen mindegy
ha nem változtat adatot GET, ha változtat POST (és utána redirect)
GET változót könnyen beraksz egy <a> tag-be, a post már problémásabb, plusz open link in new tab, plusz frissítés post esetén. eccerű, csak át kell gondolni..
Többféle
Ez így, ebben a formában...
Ez hülyeség!
Attól függ mit akarsz csinálni. Pl. jópár hete írtam egy javaslatot a PolyMeta.hu szerkesztőinek, hogy ajánlatos lenne get metódussal küldeniük, és megjeleníteniük az adatokat, hogy lehessen látni, hogy mire kerestek.
Így egy weblapstatisztikát nézve lehetne csodálkozni, hogy jé, a polymeta így is megtalált minket. - Ha posttal küldik, a statisztikában nem látsz semmit erre vonatkozóan.
De felhasználói adatokat (felhasználói név, jelszó, munkamenet azonosító) nem ajánlatos get-tel küldeni. Nem azért, mert az adatküldés módja kevésbbé biztonságos, hanem mert az okos felhasználó - ahogy már tapaszataltam egy fórumon - fogja, és kimásolja az url-t, és elküldi valakinek, az a valaki meg máris a másik nevében tevékenykedhet a weblapon.
Szóval, akkor most melyik a jobb a post vagy a get?
Megjegyzem: A PolyMeta-nak majdnem egy hónapja írtam, azóta sem változtattak, csak annyit írtak, hogy ez bonyolult dolog, és még gondolkodnak rajta.
Jó oké
Megjegyzem a polymeta.hu nem megy js nélkül. Szép js-sel meg minden, de azért annak is örülnénk.
biztonság?
Kíváncsi lennék, hogy milyen biztonsági "dolgot" tudsz felhozni a POST mellett a GET ellenében.
Felhő
elvetemült ötlet?
gex
közhely
Felhő
Elvetemült :)
Az elején pedig a "mindenképpen"-t arra értettem, hogy csúnya lesz tőle a cím, itt a keresők nem jutottak eszembe. De azt hiszem normális esetet én sem tudok felhozni. Ember vagyok, tévedhetek :)
szerk.: A példában tudom, hogy a hiba volt a gond nem pedig, hogy aki később odaül a géphez az megtudja a fhnevet.
get vs post
1.) Nem tudom elmenteni a weboldal címét, amit a rengeteg adat közül kibányásztam?
2.) stb. - pl. PolyMeta történet.
Ha lehet valami értelmes dolgot kezdeni a webcímmel, akkor get, egyébként post. Pl. get keresésnél, fórumnál, számolásoknál, stb.; bináris adatoknál, személyhez köthető adatoknál post. De az úgy nem igaz, hogy a post mindenképpen jobb a getnél.
Ez miért lenne baj?
Szerintem koncepció, hogy így működik. Egy működő alkalmazás MorphoLogic alapokon. Csak reklám, hogy a többi termékeiket eladhassák. Így aztán tesznek rá, hogy hogyan működik. Írtam nekik, hogy modemen elég zavaró, hogy ha lapozol, akkor letöltésig nem történik semmi. A tapasztalatlan felhasználó elkezdhet vadul klikkelni, hogy mi az, miért nem csinál semmit. Ezzel terhelve a szervert. - Na most megjavították. :) - Klikkelés után teljesen eltűnik a lapozósáv. - Szerintük ez jelezné, hogy a közeli jövőben valami történi fog az oldalon. - Miért nem lehetett már egy gif animációt kirakni, vagy legalább egy "töltés folyamatban..." feliratot?
részemről ennyi
Én is teszek rá, csak megjegyeztem. A felső résznél meg a baj szó a hangsúlyos, de ha előbbre olvasod megérted. De már eltértünk a tárgytól, a PolyMeta lényegtelen.
baj?
Erre válaszoltam is. Baj, ha get-et kellene használni, és mégis post-ot használsz. Az egyik oldalon sajnálkozol, hogy a PolyMeta javascript nélkül nem megy, a másikon meg szerinted mindig postot kellene használni.
Úgye, hogy mégsem tértünk el annyira a PolyMeta történettel?
Bocs, ha megsértettelek valamivel. Nem akartam semmi hasonlót!
..
Itt elismertem, hogy nem gondoltam át, tévedtem.
Nem értem az összefüggést a kettő közt, de nem sajnálkoztam, mert én nem fogom használni.
erre itt a válasz:
De ha a másik szálat elolvastad, ott már ezt is megtárgyaltuk.
Nem sértettél meg, csak néha bosszantani tud, ha felhívom a figyelmet valamire és akkor se olvassák el.
PolyMeta
Micsinál a zűrlap?
w3c.org
Felhő
GET
Mindegyiket a megfelelő helyen
A GET-tel küldött adatok mennyiségére van korlát, több mindentől függ, de általában néhány kilobyte maximum. POST-tal gyakorlatilag tetszőlegesen sok adatot lehet küldeni.
Egy alapelv, amit érdemes követni: ha egy kérés tartalmat küld vissza, akkor azt GET-tel kell érdemes csinálni. És amit GET-tel küldenek, az ne okozzon változást az adatbázisban. Ez alól kivétel a naplózó jellegű dolgok, tehát pl. 1-gyel növelem annak a számát, hogy hányszor nézték meg az adott dolgot stb.
Ha egy kérés változásokat okoz az adatbázisban, akkor azt POST-tal kell küldeni. Amit pedig POST-tal küldenek, az ne jelenítsen meg tartalmat, hanem egy Redirect-et adjon vissza a POST után megjelenítendő tartalomra, amit már GET-tel fog lekérni a böngésző. Ezzel elkerülhető az üzenet, amit a böngésző POST-olt oldal frissítésekor jelenít meg, hogy az oldal az elküldött információkból épült fel; valamit nem fordul elő, hogy emiatt kétszer lesz POST-olva a kérés.
A bejelentkezésre a legjobb módszer, hogy POST-tal megy a név/jelszó, aztán Redirect vissza a főoldalra vagy oda, ahonnan történt a bejelentkezés.
Persze van néhány kivétel, amikor megjelenítendő tartalomnál is muszáj POST-ot használni, pl. amikor egy hozzászólást küldünk ellenőrzésre, ekkor egyrészt a hosszú szöveget el kell küldeni valahogy, ami csak POST-tal megy, másrészt adatbázisban tárolás nélkül meg is kell jeleníteni.
get vagy post
Egy gyors kérdés: Van egy admin felületem, és pl ha egy bejegyzést akarok kezelni, ami egy adatbázisban van, akkor az azonosítóját, amivel az adatbázisból kikeresem GET-tel vagy POST-tal érdemes elküldeni? A fenti hozzászólásokból arra gondolok, hogy gyakorlatilag teljesen mindegy
köszi
GET
GET változót könnyen beraksz egy <a> tag-be, a post már problémásabb, plusz open link in new tab, plusz frissítés post esetén. eccerű, csak át kell gondolni..
de bakker. elolvastam a