ХТТП ПОШТА захтева достављање додатних података од клијента (претраживача) на сервер у телу поруке. У супротности, ДОБИТИ захтеви укључују све потребне податке у УРЛ-у. Обрасци у ХТМЛ-у могу користити било коју методу специфицирањем метход = "ПОСТ" или метход = "ГЕТ" (подразумевано) у елемент. Наведена метода одређује како се подаци обрасца достављају серверу. Када је метода ГЕТ, сви подаци обрасца се кодирају у УРЛ, додају у поступак УРЛ као параметри низа упита Помоћу ПОСТ-а подаци обрасца се појављују у тијелу поруке ХТТП захтјева.
ДОБИТИ | ПОШТА | |
---|---|---|
Историја | Параметри остају у историји прегледача јер су део УРЛ адресе | Параметри се не чувају у историји прегледача. |
Означено | Може да се обележи. | Не може се обележити. |
БАЦК / поново пошаљи понашање | ГЕТ захтеви се поново извршавају, али се не могу поново послати серверу ако је ХТМЛ сачуван у кешу претраживача. | Прегледач обично упозорава корисника да ће податке требати поново доставити. |
Врста кодирања (атрибут енцтипе) | апликација / к-ввв-форм-урленцодед | мултипарт / дата-дата или апликација / к-ввв-форм-урленцодед Користите вишестрано кодирање за бинарне податке. |
Параметри | може слати, али подаци о параметрима ограничени су на оно што можемо убацити у линију захтева (УРЛ). Најсигурније за коришћење мање од 2К параметара, неки сервери обрађују до 64К | Могу да шаљу параметре, укључујући уплоад датотека, на сервер. |
Хакиран | Лакше за хакирање за скрипте за децу | Теже је хаковати |
Ограничења у врсти података обрасца | Да, дозвољени су само АСЦИИ знакови. | Нема ограничења. Бинарни подаци су такође дозвољени. |
Сигурност | ГЕТ је мање сигуран у односу на ПОСТ јер су послани подаци део УРЛ-а. Тако се чува у историји прегледача и записима сервера у отвореном тексту. | ПОСТ је мало сигурнији од ГЕТ-а, јер се параметри не чувају у историји прегледача или у записима веб сервера. |
Ограничења у дужини података обрасца | Да, пошто су подаци обрасца у УРЛ-у, а дужина УРЛ-а је ограничена. Сигурна граница дужине УРЛ адреса је често 2048 знакова, али варира од претраживача и веб сервера. | Нема ограничења |
Употребљивост | ГЕТ метода се не сме користити приликом слања лозинки или других осетљивих информација. | ПОСТ метода која се користи приликом слања лозинки или других осетљивих информација. |
Видљивост | ГЕТ метода је видљива свима (биће приказана у адресној траци прегледача) и има ограничења у количини информација које треба послати. | Променљиве методе ПОСТ се не приказују у УРЛ-у. |
Предмеморирано | Може се кеширати | Не кеширано |
Темељна разлика између МЕТХОД = "ГЕТ" и МЕТХОД = "ПОСТ" је да они одговарају различити ХТТП захтеви, како је дефинисано у ХТТП спецификацијама. Процес подношења обе методе започиње на исти начин - прегледач формира скуп података података обрасца, а затим их кодира на начин који је специфициран од стране енцтипе атрибут. За МЕТХОД = "ПОСТ тхе тхе енцтипе атрибут може бити мултипарт / форм-дата или апликација / к-ввв-форм-урленцодед, док за МЕТХОД = "ГЕТ", само апликација / к-ввв-форм-урленцодед је дозвољено. Овај скуп података обрасца затим се преноси на сервер.
За слање обрасца са МЕТХОД = "ГЕТ", прегледач конструише УРЛ узимајући вредност од поступак атрибут, додајући а ? на њега, затим додавањем скупа података обрасца (кодираног помоћу врсте садржаја / к-ввв-форм-урленцодед). Онда прегледач обрађује овај УРЛ као да следи везу (или као да је корисник директно уписао УРЛ). Прегледач подели УРЛ на делове и препозна хост, а затим њему пошаље ГЕТ захтев са остатком УРЛ-а као аргумент. Сервер га узима одатле. Имајте на уму да овај поступак значи да су подаци обрасца ограничени на АСЦИИ кодове. Посебну пажњу треба посветити кодирању и декодирању осталих врста знакова приликом њиховог проласка кроз УРЛ у АСЦИИ формату.
Подношење обрасца са МЕТХОД = "ПОСТ" узрокује слање ПОСТ захтева користећи вредност поступак атрибут и порука креирана у складу са типом садржаја који је одредио енцтипе атрибут.
Будући да се подаци обрасца шаљу као део УРЛ адресе када ДОБИТИ се користи --
У принципу, обрада посланих података обрасца зависи од тога да ли се шаље са њима МЕТХОД = "ГЕТ" или МЕТХОД = "ПОСТ". Будући да се подаци кодирају на различите начине, потребни су различити механизми декодирања. Стога, генерално говорећи, промена МЕТОДА може захтевати промену скрипте која обрађује пријаву. На пример, када користите ЦГИ интерфејс, скрипта прима податке у променљивој околини (КУЕРИСТРИНГ) када ДОБИТИ се користи. Али када ПОШТА користи се, образац се преноси у стандардном улазном току (стдин), а број бајтова за читање даје се у заглављу дужине садржаја.
ГЕТ се препоручује приликом слања „идемпотентних“ образаца - оних који не „значајно мењају стање у свету“. Другим речима, обрасци који укључују само упите у базе података. Друга перспектива је да ће неколико идемпотентних упита имати исти ефекат као један упит. Ако су укључене надоградње базе података или друге радње, попут покретања е-поште, препоручује се употреба ПОСТ-а.
Са блога програмера Дропбок:
прегледач не зна тачно шта одређени ХТМЛ образац ради, али ако се образац предаје путем ХТТП ГЕТ-а, прегледач зна да је сигурно аутоматски поново покушати ако постоји мрежна грешка. За обрасце који користе ХТТП ПОСТ можда није сигурно покушати поново, тако да прегледач прво тражи од корисника потврду.
Захтев „ГЕТ“ је често кеширан, док захтев „ПОСТ“ тешко може бити. За системе упита ово може имати значајан утицај на ефикасност, посебно ако су редови упита једноставни, јер предмемори могу послужити најчешће упите.
У одређеним случајевима помоћу ПОШТА препоручује се чак и за идемпотентне упите:
Ажурирано 15. маја 2015. године: Да ли ПОСТ нуди већу сигурност од ГЕТ-а, када се користи ХТТПС (ХТТП преко ТЛС / ССЛ)?
Ово је занимљиво питање. Реците да шаљете ГЕТ захтев веб страници:
ГЕТ хттпс://ввв.екампле.цом/логин.пхп?усер=мицкеи&пассвд=мини
Под претпоставком да се интернетска веза надгледа, које ће информације о овом захтеву бити доступне снооперу? Ако се уместо тога користи ПОСТ, а подаци корисника и пассвд укључе се у ПОСТ променљиве, да ли ће то бити сигурније у случају ХТТПС веза?
Одговор је не. Ако поставите такав ГЕТ захтев, нападачу који прати ваш веб саобраћај биће познате следеће информације:
Дио путање УРЛ-а - тј. Стварна тражена страница, као и параметри низа упита - заштићени су (шифрирани) док су „преко жице“, тј. У транзиту, на путу до одредишног сервера. Ситуација је потпуно иста и за ПОСТ захтеве.
Наравно, веб сервери имају тенденцију да цео УРЛ бележе обичним текстом у својим записима приступа; па слање осетљивих информација преко ГЕТ-а није добра идеја. Ово се односи без обзира да ли се користи ХТТП или ХТТПС.