POST — один з багатьох методів запиту, що підтримуються протоколом передачі даних HTTP, який використовується у всесвітній мережі Інтернет. Метод POST призначений для запиту, при якому вебсервер приймає дані збережені в тілі повідомлення, для зберігання. Метод часто використовується для завантаження файлу або передачі заповненої вебформи.
На відміну від POST, метод GET призначений для отримання інформації від сервера. В рамках GET-запитів деякі дані можуть бути передані в рядку запиту URI, який вказує, наприклад, умови пошуку, діапазони дати, або іншу інформацію, що визначає запит. У рамках методу POST-запиту довільну кількість даних будь-якого типу може бути відправлено на сервер у тексті листа запиту. Поля заголовка в POST-запиті зазвичай вказують на .
Дані POST-запитів
Всесвітня мережа Інтернет і протокол HTTP базуються на методах запитів, включаючи POST, GET, PUT, DELETE і ряд інших. Веббраузери зазвичай використовують тільки GET і POST, але REST онлайн-додатки вимагаються підтримки і багатьох інших. Метод POST призначений для відправки запиту нової сутності на сервер, так що вона зберігатиметься як підресурс ресурсу, ідентифікованого URI. Наприклад, для URI http://example.com/customers
за допомогою POST запитів можна було б представляти нових клієнтів, кожен з яких містив би ім'я, адресу та контактні дані. Розробники сайтів відійшли від цієї концепції з двох причин. По-перше, немає ніяких технічних причин для URI текстуально описувати підлеглі вебресурси, на яких будуть збережені дані послані методом POST. Справді, остання частина URI більш ймовірно опише сторінку обробки вебдодатку та його технології, наприклад http://example.com/applicationform.php
. По-друге, з огляду на природне обмеження більшості веббраузерів роботи тільки методами GET та POST, розробники розуміли необхідність додавання додаткових можливостей в метод POST, включаючи зміну існуючих записів та їх видалення.
Спроби виправити перший недолік почалися ще в 1998 році. Фреймворки вебдодатків, такі як Ruby on Rails та інші допомагали розробникам надавати своїм користувачам вебадреси, зручні для сприйняття людиною. Що стосується другого пункту, можна написати клієнтські сценарії або автономні програми, які будуть використовувати інші методи HTTP, перетворюючи їх потім в метод POST.
Тобто не можна сказати, що кожна вебформа повинна містити метод POST в відкриваючому тезі. Чимало форм використовуються для більш точно для отримання інформації з серверу, без зміни основних баз даних. Для таких форм пошуку ідеально підходить метод GET.
Бувають випадки, коли HTTP GET не підходить навіть для отримання даних. Прикладом є ситуація, коли велика кількість даних має бути записана в URL. Браузери і вебсервери можуть мати обмеження на довжину URL, які вони обробляють без помилки. URL-кодування зарезервованих символів у адресі і рядку запиту може значно збільшити довжину, в той час як HTTP-сервер Apache може обробляти до 4000 символів в URL, Microsoft Internet Explorer обмежує довжину будь-якого URL 2048 символами.
Так само, HTTP GET не повинен використовуватися для конфіденційної інформації, такої як імена користувачів і паролі, які повинні бути представлені разом з іншими даними для завершення запиту. Навіть при використанні HTTPS, що запобігає дані від перехоплення при передачі, історії браузера і журнали вебсервера, ймовірно, містять повні URLи у вигляді відкритого тексту, що можуть бути знайдені, якщо система буде зламана. У цих випадках використовується HTTP POST.
Використання для подання вебформ
Коли веббраузер відправляє POST-запит з елементами вебформи, за умовчанням інтернет-тип даних медіа це: application/x-www-form-urlencoded
. Це формат для кодування пар ключ-значення з можливістю дублювання ключів. Кожна пара ключ-значення відділяється символом &
, ключ відділений від значення символом =
. У ключах і значеннях пробіли замінюються на символ +
, і потім, використовуючи URL-кодування, замінюються всі не літеро-цифрові символи.
Name: Jonathan Doe Age: 23 Formula: a + b == 13 %!
Буде закодовано таким чином:
Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13+%25%21
Починаючи з HTML 4.0, форми можуть також представити дані в , як визначено в RFC 2388 (див. Також RFC 1867 для більш ранньої експериментальної версії визначеної як розширення HTML 2.0 і згадується в HTML 3.2).
Окремий випадок методу POST при зверненні на ту ж сторінку, якій належить форма, називається зворотньою передачею.
Вплив на стан сервера
У RFC 2616 методі POST-запит повинен бути використаний для будь-якого контексту, в якому запит не ідемпотентний: тобто, він викликає зміну стану сервера кожного разу при виконанні, такі як відправка коментаря до повідомлення в блозі або інтернет-голосування. На практиці, метод GET часто зарезервований, не просто для ідемпотентних дій, але й для нульпотентних, тобто без побічних ефектів (на відміну від «без побічних ефектів при другому і наступних запитах» як з Ідемпотентними операціями). З цієї причини сайти пошукових систем, таких як індексатори пошукових систем зазвичай використовують виключно метод GET, для запобігання будь-яких дій при автоматизованих запитах.
Тим не менш, є причини чому POST використовується навіть для ідемпотентних запитів, особливо у випадках коли запит використовує не-ASCII символи або дуже довгий, через обмеження на URL.
Примітки
- . Архів оригіналу за 25 травня 2017. Процитовано 24 липня 2014.
The POST method requests that the target resource process the representation enclosed in the request according to the resource's own specific semantics.
- Berners-Lee, Tim; (22 вересня 1995). . World Wide Web Consortium. Архів оригіналу за 25 грудня 2010. Процитовано 15 січня 2011.
- . Архів оригіналу за 3 вересня 2008. Процитовано 28 березня 2017.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
POST odin z bagatoh metodiv zapitu sho pidtrimuyutsya protokolom peredachi danih HTTP yakij vikoristovuyetsya u vsesvitnij merezhi Internet Metod POST priznachenij dlya zapitu pri yakomu vebserver prijmaye dani zberezheni v tili povidomlennya dlya zberigannya Metod chasto vikoristovuyetsya dlya zavantazhennya fajlu abo peredachi zapovnenoyi vebformi Na vidminu vid POST metod GET priznachenij dlya otrimannya informaciyi vid servera V ramkah GET zapitiv deyaki dani mozhut buti peredani v ryadku zapitu URI yakij vkazuye napriklad umovi poshuku diapazoni dati abo inshu informaciyu sho viznachaye zapit U ramkah metodu POST zapitu dovilnu kilkist danih bud yakogo tipu mozhe buti vidpravleno na server u teksti lista zapitu Polya zagolovka v POST zapiti zazvichaj vkazuyut na Dani POST zapitivVsesvitnya merezha Internet i protokol HTTP bazuyutsya na metodah zapitiv vklyuchayuchi POST GET PUT DELETE i ryad inshih Vebbrauzeri zazvichaj vikoristovuyut tilki GET i POST ale REST onlajn dodatki vimagayutsya pidtrimki i bagatoh inshih Metod POST priznachenij dlya vidpravki zapitu novoyi sutnosti na server tak sho vona zberigatimetsya yak pidresurs resursu identifikovanogo URI Napriklad dlya URI http example com customers za dopomogoyu POST zapitiv mozhna bulo b predstavlyati novih kliyentiv kozhen z yakih mistiv bi im ya adresu ta kontaktni dani Rozrobniki sajtiv vidijshli vid ciyeyi koncepciyi z dvoh prichin Po pershe nemaye niyakih tehnichnih prichin dlya URI tekstualno opisuvati pidlegli vebresursi na yakih budut zberezheni dani poslani metodom POST Spravdi ostannya chastina URI bilsh jmovirno opishe storinku obrobki vebdodatku ta jogo tehnologiyi napriklad http example com applicationform php Po druge z oglyadu na prirodne obmezhennya bilshosti vebbrauzeriv roboti tilki metodami GET ta POST rozrobniki rozumili neobhidnist dodavannya dodatkovih mozhlivostej v metod POST vklyuchayuchi zminu isnuyuchih zapisiv ta yih vidalennya Sprobi vipraviti pershij nedolik pochalisya she v 1998 roci Frejmvorki vebdodatkiv taki yak Ruby on Rails ta inshi dopomagali rozrobnikam nadavati svoyim koristuvacham vebadresi zruchni dlya sprijnyattya lyudinoyu Sho stosuyetsya drugogo punktu mozhna napisati kliyentski scenariyi abo avtonomni programi yaki budut vikoristovuvati inshi metodi HTTP peretvoryuyuchi yih potim v metod POST Tobto ne mozhna skazati sho kozhna vebforma povinna mistiti metod POST v vidkrivayuchomu tezi Chimalo form vikoristovuyutsya dlya bilsh tochno dlya otrimannya informaciyi z serveru bez zmini osnovnih baz danih Dlya takih form poshuku idealno pidhodit metod GET Buvayut vipadki koli HTTP GET ne pidhodit navit dlya otrimannya danih Prikladom ye situaciya koli velika kilkist danih maye buti zapisana v URL Brauzeri i vebserveri mozhut mati obmezhennya na dovzhinu URL yaki voni obroblyayut bez pomilki URL koduvannya zarezervovanih simvoliv u adresi i ryadku zapitu mozhe znachno zbilshiti dovzhinu v toj chas yak HTTP server Apache mozhe obroblyati do 4000 simvoliv v URL Microsoft Internet Explorer obmezhuye dovzhinu bud yakogo URL 2048 simvolami Tak samo HTTP GET ne povinen vikoristovuvatisya dlya konfidencijnoyi informaciyi takoyi yak imena koristuvachiv i paroli yaki povinni buti predstavleni razom z inshimi danimi dlya zavershennya zapitu Navit pri vikoristanni HTTPS sho zapobigaye dani vid perehoplennya pri peredachi istoriyi brauzera i zhurnali vebservera jmovirno mistyat povni URLi u viglyadi vidkritogo tekstu sho mozhut buti znajdeni yaksho sistema bude zlamana U cih vipadkah vikoristovuyetsya HTTP POST Vikoristannya dlya podannya vebformKoli vebbrauzer vidpravlyaye POST zapit z elementami vebformi za umovchannyam internet tip danih media ce application x www form urlencoded Ce format dlya koduvannya par klyuch znachennya z mozhlivistyu dublyuvannya klyuchiv Kozhna para klyuch znachennya viddilyayetsya simvolom amp klyuch viddilenij vid znachennya simvolom U klyuchah i znachennyah probili zaminyuyutsya na simvol i potim vikoristovuyuchi URL koduvannya zaminyuyutsya vsi ne litero cifrovi simvoli Name Jonathan Doe Age 23 Formula a b 13 Bude zakodovano takim chinom Name Jonathan Doe amp Age 23 amp Formula a 2B b 3D 3D 13 25 21 Pochinayuchi z HTML 4 0 formi mozhut takozh predstaviti dani v yak viznacheno v RFC 2388 div Takozh RFC 1867 dlya bilsh rannoyi eksperimentalnoyi versiyi viznachenoyi yak rozshirennya HTML 2 0 i zgaduyetsya v HTML 3 2 Okremij vipadok metodu POST pri zvernenni na tu zh storinku yakij nalezhit forma nazivayetsya zvorotnoyu peredacheyu Vpliv na stan serveraU RFC 2616 metodi POST zapit povinen buti vikoristanij dlya bud yakogo kontekstu v yakomu zapit ne idempotentnij tobto vin viklikaye zminu stanu servera kozhnogo razu pri vikonanni taki yak vidpravka komentarya do povidomlennya v blozi abo internet golosuvannya Na praktici metod GET chasto zarezervovanij ne prosto dlya idempotentnih dij ale j dlya nulpotentnih tobto bez pobichnih efektiv na vidminu vid bez pobichnih efektiv pri drugomu i nastupnih zapitah yak z Idempotentnimi operaciyami Z ciyeyi prichini sajti poshukovih sistem takih yak indeksatori poshukovih sistem zazvichaj vikoristovuyut viklyuchno metod GET dlya zapobigannya bud yakih dij pri avtomatizovanih zapitah Tim ne mensh ye prichini chomu POST vikoristovuyetsya navit dlya idempotentnih zapitiv osoblivo u vipadkah koli zapit vikoristovuye ne ASCII simvoli abo duzhe dovgij cherez obmezhennya na URL Primitki Arhiv originalu za 25 travnya 2017 Procitovano 24 lipnya 2014 The POST method requests that the target resource process the representation enclosed in the request according to the resource s own specific semantics Berners Lee Tim 22 veresnya 1995 World Wide Web Consortium Arhiv originalu za 25 grudnya 2010 Procitovano 15 sichnya 2011 Arhiv originalu za 3 veresnya 2008 Procitovano 28 bereznya 2017