POST (HTTP)

Из Википедије, слободне енциклопедије

U računarstvu, POST je jedna od mnogih metoda koje podržava zahtev HTTP protokola koji se koristi od strane svetske mreže . POST metod je dizajniran da zahteva da se sa veb servera prihvata podatak poslat u okviru HTTP zahteva.[1] To se često koristi kada se šalje datoteka ili dostavlja popunjeni veb formulari.

Nasuprot tome ,HTTP GET zahteva metod je dizajniran da preuzme podatke sa servera. Kao deo GET metoda , neki podaci mogu biti doneti u okviru string upita URI -a , navodeći na primer termin za pretragu , datumi ili druge informacije koje definiše upit. Kao deo POST zahteva ,proizvoljna količina podataka bilo kog tipa može biti poslat na server u delu poruke HTTP zahteva. HTTP zaglavlje obično ukazuje na format HTTP zahteva.

Slanje podataka[уреди]

Svetska mreža i HTTP su zasnovani na brojnim zahtevnim metodima, uključujući i POST i GET, kao i PUT, DELETE, i još nekoliko drugih. Veb pretraživači obično koriste samo GET i POST, ali ostale onlajn aplikacije koriste mnoge druge. POSTov zadatak u ovkviru HTTP metoda jeste da pošaljete predstavljanje nove objektne veze sa servera, tako da će se čuvati kao novi zavistan izvor prepoznatljiv po URI.[1] Na primer, za URI http://example.com/customers kupci, od POST zahteva može se očekivati da predstavljaju nove kupce, uključujući svako njihovo ime, adresu, kontakt podatke i tako dalje. Rani veb dizajneri zalutali su daleko od ovog prvobitnog koncepta na dva načina. Prvo, ne postoji tehnički razlog da URI ukratko opiše zavistan veb resurs na koji će POST podaci biti sačuvani. U stvari, ukoliko nije utrošen neki napor, poslednji deo URI će verovatno opisati obradu Veb aplikacije na toj stani, kao što su http://example.com/applicationform.php. Drugo, s obzirom na ograničenost da većina veb pretraživača koristi GET ili POST, dizajneri su osetili potrebu da ponovo namene POST metod da uradi mnoge druge dostavke podatkaka i zadatke za upravljanje podacima, uključujući i promenu postojećih evidencija i njihovo brisanje.

Napori nekih uticajnih pisaca da ispravi prvu tačku počela je još 1998.[2] Okvirske veb aplikacije kao što su Rubi on Rails i druge olakšavaju dizajnerima da obezbede svojim korisnicima čiste URL adrese. Što se tiče drugog pitanja, moguće je koristiti klijentske skripte, ili da pišu samostalne aplikacije, da koriste druge metode HTTPa gde su relevantni[3], ali van ovoga većina veb obrazaca koji se šalju ili obaveštavaju server sa podacima će nastaviti da koriste POST metod.

To ne znači da svaka veb forma treba da ima naveden method kao "post" u svom početnom tagu. Mnoge forme se koriste za preciznije preuzimanje informacija sa servera, bez ikakve namere da se menja u glavnoj bazi podataka. Takvi oblici pretrage su idealne da ima metodu postavljenu na "get".[4]

Postoje trenuci kada HTTP GET metod je manje pogodan za preuzimanje podataka. Primer za to je kada bi veliki deo podataka trebalo da bude naveden u URL. Pregledači i veb serveri mogu da imaju ograničenja po pitanju dužine URL koji će se čitati bez skraćivanjem ili prijavljivanja greške. Šifrovanje URL-a rezervisanim znakovima u URL adresama i upitima može značajno da poveća njihovu dužinu,dok Apač HTTP server može da obradi do 4.000 znakova u URL-a,[5] Majkrosoftov Internet ekplorer je ograničena na 2048 znakova.[6] Isto tako, HTTP GET ne treba da se koristi gde su osetljive informacije, kao što su korisnička imena i lozinke i oni moraju da se podnesu zajedno sa drugim podacima iz zahteva. Čak i ako se koristi HTTPS, sprečavajuci da se podatci presretnu u tranzitu, u istoriji pregledača i logovima veb servera će se verovatno sadržati puna URL adresa u otvorenom tekstu, koji mogu biti izloženi ukoliko je bilo koji sistem hakovan. U ovim slučajevima, HTTP POST treba koristiti.[7]

Nacin slanja veb obrazaca[уреди]

Kada veb pretraživač šalje POST zahtev iz elementa veb formular ,podrazumevani internet medija tip je "application/x-www-form-urlencoded".[8] Ovo je format za kodiran ključ - vrednost parovima sa eventualno duplim ključevima. Svaki ključ - vrednost par je odvojen od sa '&' karakterom , a svaki ključ je odvojen od svoje vrednosti od sa ' =' karakterom . U ključevima i vrednostima razmake možemo zameniti znakom "+", a za ostale za ostale ne-alfanumeričke[9] karaktere možemo kodirati koristeći URL kodiranje.

Na primer , ključ - vrednost parovima

Ime: Ivan Jelić
Godine : 23
Formula : A + B == 13 % !

kodiraju kao

Ime = Ivan + Jelic & Godine = 23 & Formula =+ % 2B + B + % 3D % 3D % 25 % +13 21

Počevši sa HTML 4.0 , forme mogu da dostave podatke u multipart/form-data kao što je definisano u RFC 2388 (Vidi i RFC 1867 za eksperimentalnu verziju ranije definisana kao proširenje HTML 2.0 i pomenuti u HTML 3.2 ) .

Ukoliko je POST zahtev već poslat klijentski programi obično upozoravaju korisnika da je POST zahtev vec poslat i to upozorenje je poznato kao POSTBACK .

Reference[уреди]

  1. ^ а б „Hypertext Transfer Protocol -- HTTP/1.1“. RFC 2616 Приступљено 30. 5. 2013.. „The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.“ 
  2. ^ Berners-Lee, Tim (1998). „Cool URIs don't change“. W3C Приступљено 30. 5. 2013.. 
  3. ^ Friedman, Mike (2009). „Using HTTP PUT and DELETE methods in web applications“ Приступљено 30. 5. 2013.. 
  4. ^ „Form submission“. HTML 4.01 Specification. W3C. 1999 Приступљено 30. 5. 2013.. 
  5. ^ Rigsby, Dan (2008). "REST and Max URL Size". Приступљено 30. мај 2013.
  6. ^ „Maximum URL length is 2,083 characters in Internet Explorer“. Microsoft. 
  7. ^ „Hypertext Transfer Protocol -- HTTP/1.1“. RFC 2616 Приступљено 30. 5. 2012.. 
  8. ^ Berners-Lee, Tim; Connolly, Dan (22. 9. 1995.). „Hypertext Markup Language - 2.0 - Forms“. World Wide Web Consortium Приступљено 30. 5. 2013.. 
  9. ^ „Forms in HTML documents“. 

Vidi još[уреди]

Spoljašnje veze[уреди]