Пређи на садржај

POST (HTTP)

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

U računarstvu, POST je jedna od mnogih metoda za zahteve koje podržava HTTP protokol 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 popunjen veb formular.

Nasuprot tome, HTTP GET 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, datume 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 okviru HTTP zahteva. HTTP zaglavlje obično ukazuje na format HTTP zahteva.

Svetska mreža i HTTP su zasnovani na brojnim zahtevnim metodima, uključujuć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. POST-ov zadatak u okviru HTTP metoda jeste da pošalje predstavljanje nove objektne veze sa servera, tako da se čuva kao novi zavistan izvor prepoznatljiv po URI.[1] Na primer, za URI http://example.com/customers, od POST zahteva može se očekivati da predstavljaju nove kupce, uključujući njihova imena, adrese, 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 strani, kao što su http://example.com/applicationform.php. Drugo, s obzirom na ograničenje veb pretraživača da mogu da koriste samo GET ili POST, dizajneri su osetili potrebu da ponovo namene POST metod da uradi mnoge druge dostave podataka i zadataka 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 Ruby 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 napisati samostalne aplikacije, koje mogu da koriste druge metode HTTPa gde su relevantne,[3] ali van ovoga većina veb obrazaca koji se šalju ili obaveštavaju server sa podacima nastavljaju 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 glavna baza podataka. Takvi oblici pretrage su idealni da imaju metodu postavljenu na "get".[4]

Postoje trenuci kada je HTTP GET metod 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ćivanja ili prijavljivanja greške. Šifrovanje rezervisanih znakova 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-u,[5] Majkrosoftov Internet ekplorer je ograničen 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čavajući da se podaci presretnu u tranzitu, istorija pregledača i logovi veb servera će verovatno sadržati punu URL adresu u otvorenom tekstu, koji može biti izložen ukoliko je bilo koji sistem hakovan. U ovim slučajevima, HTTP POST treba koristiti.[7]

Način slanja veb obrazaca

[уреди | уреди извор]

Kada veb pretraživač pošalje POST zahtev iz elementa veb formular, podrazumevani internet medija tip je "application/x-www-form-urlencoded".[8] Ovo je format za kodiranje ključ - vrednost parovima sa mogućim duplim ključevima. Svaki ključ - vrednost par je odvojen '&' karakterom, a svaki ključ je odvojen od svoje vrednosti 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 parovi

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

se kodiraju kao:

Ime=Ivan+Jelic&Godine=23&Formula=A+%2B+B+%3D%3D+13%25+%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 definisanu 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.

  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.  Спољашња веза у |work= (помоћ)
  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.  Спољашња веза у |work= (помоћ)
  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”. 

Spoljašnje veze

[уреди | уреди извор]