Jump to content

SPLIT: HTTP GET metoda - trupi vs mohi


Trooper

Recommended Posts

jebiga, ja sam priuceni dev

 

 

ne vredi, moram da odgovorim

 

Restful paradigma (koju bi svaki http servis trebalo da prati) jasno definise da GET request metoda treba da bude idempotenta (ili cak nullipotenta), tj da ne proizvodi bilo kakve side-effects. Za bilo kakve operacije koje narusavaju perzistenciju je predvidjeno da budu obavljene koristeci POST. Odatle i proistice fenomen koji si lepo primetio da je to obicno "skriveno u nekom javascriptu", jer se danas takav POST obavlja kroz js, tj. ajax.

Edited by trooper
  • Upvote (+1) 1
Link to comment
Share on other sites

Trooperu, postovao si nesto kliknuvsi na post dugme, hakeru nas!

 

jebiga, ja sam priuceni dev

 

 

ne vredi, moram da odgovorim

 

Restful paradigma (koju bi svaki http servis trebalo da prati) jasno definise da GET request metoda treba da bude idempotenta (ili cak nullipotenta), tj da ne proizvodi bilo kakve side-effects. Za bilo kakve operacije koje narusavaju perzistenciju je predvidjeno da budu obavljene koristeci POST. Odatle i proistice fenomen koji si lepo primetio da je to obicno "skriveno u nekom javascriptu", jer se danas takav POST obavlja kroz js, tj. ajax.

To nije tacno, odakle god da si kopirao.

Edited by Phaneron
Link to comment
Share on other sites

Nije me mrzelo da kopam po RFCovima. A sad odoh da radim nesto korisno

 

http://www.ietf.org/rfc/rfc2616.txt

 

Implementors should be aware that the software represents the user in

their interactions over the Internet, and should be careful to allow
the user to be aware of any actions they might take which may have an
unexpected significance to themselves or others.

In particular, the convention has been established that the GET and
HEAD methods SHOULD NOT have the significance of taking an action
other than retrieval
. These methods ought to be considered "safe".
This allows user agents to represent other methods, such as POST, PUT
and DELETE, in a special way, so that the user is made aware of the
fact that a possibly unsafe action is being requested.

Naturally, it is not possible to ensure that the server does not
generate side-effects as a result of performing a GET request; in
fact, some dynamic resources consider that a feature. The important
distinction here is that the user did not request the side-effects,
so therefore cannot be held accountable for them
.

Link to comment
Share on other sites

jebiga, ja sam priuceni dev

 

 

ne vredi, moram da odgovorim

 

Restful paradigma (koju bi svaki http servis trebalo da prati) jasno definise da GET request metoda treba da bude idempotenta (ili cak nullipotenta), tj da ne proizvodi bilo kakve side-effects. Za bilo kakve operacije koje narusavaju perzistenciju je predvidjeno da budu obavljene koristeci POST. Odatle i proistice fenomen koji si lepo primetio da je to obicno "skriveno u nekom javascriptu", jer se danas takav POST obavlja kroz js, tj. ajax.

 

Nigde ja nisam cuo za to, a verovatno ni ostatak interneta. A ako te zanima sta REST podrazumeva imas wiki. Doduse mozda vi imate neki specijalni REST dizajn kod vas u ms-u po obicaju.

 

Nije me mrzelo da kopam po RFCovima. A sad odoh da radim nesto korisno

 

http://www.ietf.org/rfc/rfc2616.txt

 

Ovo nema veze sa rest modelom, a nesto ne vidim kako je ovo "unsafe" akcija da se koristi get?

 

Druga stvar, i da je post mogao bi da ga reprodukujes i samim time pokusas da adminu das plus tako da ne vidim opet cemu iscudjavanje.

OPTIMISED FOR HUMAN OPTICAL NERVE

BEST VIEWED WITH A MONITOR

Link to comment
Share on other sites

Nigde ja nisam cuo za to, a verovatno ni ostatak interneta.

Mohi == internet.

 

Ovo nema veze sa rest modelom, a nesto ne vidim kako je ovo "unsafe" akcija da se koristi get?

Tako sto menja state aplikacije.  HTTP/REST-compliant GET operacija ne sme da menja state aplikacije.

Druga stvar, i da je post mogao bi da ga reprodukujes i samim time pokusas da adminu das plus tako da ne vidim opet cemu iscudjavanje.

Mogao bi al ne prostim kucanjem u address bar, i ne bi dobio ovako lep error message, tako da eto tome moje iscudjivanje

Doduse mozda vi imate neki specijalni REST dizajn kod vas u ms-u po obicaju.

:DD ::::DDDD kako si se samo setio fore!! :DDD umirem ::DD:D:DDD
  • Upvote (+1) 1
  • Downvote (-1) 1
Link to comment
Share on other sites

Prvo rest compliant get moze da menja jer rest NE DEFINISE TO.

 

A po http specifikaciji koju cu ti opet kvoutovati da bolje procitas

 

In particular, the convention has been established that the GET and
HEAD methods SHOULD NOT have the significance of taking an action
other than retrieval. These methods ought to be considered "safe".
This allows user agents to represent other methods, such as POST, PUT
and DELETE, in a special way, so that the user is made aware of the
fact that a possibly unsafe action is being requested.

 

Nije zabranjeno, ne bi trebalo i to iz razloga bezbednosti koja kao sto rekoh u ovoj situaciji nije ugrozena.

 

Dobio bi isti takav error message i postovanjem.

 

Padne mi ta fora na pamet svaki put kad treba da radim nesto sa ms produktima, ovako s vrha glave mi padaju na pamet vase naming konvencije, pa ldap i tako.

OPTIMISED FOR HUMAN OPTICAL NERVE

BEST VIEWED WITH A MONITOR

Link to comment
Share on other sites

Padne mi ta fora na pamet svaki put kad treba da radim nesto sa ms produktima, ovako s vrha glave mi padaju na pamet vase naming konvencije, pa ldap i tako.

Nemam nikakve veze sa tim projektima, radim na machine learning platformi koja je toliko backend-oriented da ne postoji apsolutno nikakav external client surface, tako da kindly fuck off sa tim forama, nisu ni na koji nacin relevantne niti plasirane ka pravoj osobi.

Cini mi se da imamo neki communication breakdown i uzalud obojica trosimo vreme, ne zelim da ucestvujem u ovome dalje, ostavicu samo ovo ako zelis da se malo edukujes: http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist

E da, POST bi vratio isti HTML chunk kao response, al ne bi ga tek tako lepo izrenderovao kao prostim kucanjem GETa u address baru, na to sam mislio, nemoj da se pravis balvan.

Edited by Lucky
  • Downvote (-1) 3
Link to comment
Share on other sites

Nemam nikakve veze sa tim projektima, radim na machine learning platformi koja je toliko backend-oriented da ne postoji apsolutno nikakav external client surface, tako da kindly fuck off sa tim forama, nisu ni na koji nacin relevantne niti plasirane ka pravoj osobi.

Cini mi se da imamo neki communication breakdown i uzalud obojica trosimo vreme, ne zelim da ucestvujem u ovome dalje, ostavicu samo ovo ako zelis da se malo edukujes: http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist

E da, POST bi vratio isti HTML chunk kao response, al ne bi ga tek tako lepo izrenderovao kao prostim kucanjem GETa u address baru, na to sam mislio, nemoj da se pravis balvan.

 

Jel taj machine learning povezan nekako sa bing pretrazivacem? Pardon, bing SRANJE MIKROSOFT pretrazivacem? Ma da, definitivno sam promasio adresu kenjajuci po ms politici vezano za ovu nasu raspravu.

 

Da, imamo prekid komunikacije jer se grcis da ne ispadnes glup makar u tom programiranju.

 

Aj ovako, sta bi ti upotrebio na ovom nasem forumu za pregled profila korisnika? Get ili post? Ja bi upotrebio get jer ne postoji striktna konvencija da ako neka stranica radi bilo kakvu izmenu da mora post. Tako je i na nasem forumu, tako je svuda, getuje se profil korisnika, a apdejtuje se baza sa listom korisnika koji su posetili profil.

 

Ne pravim se balvan nego ti lupetas gluposti. Zasto bi se drugacije renderovao odgovor na post i na get? Sta bulaznis ti? Mozda neko sranje koje ti koristis za simuliranje posta vraca cudan render ali zasto uzimas to kao pravilo?

OPTIMISED FOR HUMAN OPTICAL NERVE

BEST VIEWED WITH A MONITOR

Link to comment
Share on other sites

aj jos jednom i onda se vise ne javljam na ovoj temi

Objasnicu ti zasto bih za vote koristio POST. A ti probaj da uocis razliku vs. pregled profila gde bi koristio GET.

Za vote bih koristio asinhroni POST, i kao response nikad ne bih vratio ceo jebeni HTML BLOB vec jedan integer koji ce da indicira da li je vote uspeo ili ne.

Zamisli hipoteticku situaciju gde novim update-om foruma mozes jednom odgovoru na temi da das vise vote-ova. Otvoris URL za vote kao Shekk (ili ti se prosto vote otvara u istoj strani kao kompletno novi request), desi se neki jitter i paket zakasni, istripujes se da se nista nije desilo, kliknes F5 i glasao si dva puta. No biggie kad je u pitanju jebeno glasanje na jebenom RUR forumu, ali se radi o principu i ispunjavanju ocekivanja korisnika na input koji je zadao. UX Design 101.

Addendum:

Taj GET za pregled profila je dosta specificna situacija, nisam siguran da bih umeo da dam najbolji odgovor iako intuicija kaze da treba da bude GET jer je primarna akcija "zahtevanje sadrzaja" a prikaz pregleda profila spada vise u domen "logovanja akcija".

Ali lepo sto si se uhvatio za jedan jedini edge-case, pored miliona drugih primera gde je jako jasno kad je GET a kad je POST

Edited by trooper
Link to comment
Share on other sites

Desice se isto i sa postom ako lupis f5 u pola postovanja, sto se redovno desava na forumu jelte.

 

Taj "edge case" je cesci nego sto mislis.

 

I mozes ti sad da insistiras na koser varijanti koliko hoces, apsolutno nema razloga da za vote ide post umesto get-a.

  • Upvote (+1) 1
  • Downvote (-1) 1

OPTIMISED FOR HUMAN OPTICAL NERVE

BEST VIEWED WITH A MONITOR

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...