Можда сте чули за ГЕТ и ПОСТ захтеве, али они су само почетак.
Сваки ХТТП захтев користи метод да опише своју суштинску сврху. Сваки метод има специфичне употребе за задатке у распону од преузимања веб странице до брисања ресурса. ГЕТ и ПОСТ су два најпознатија, али постоји још седам других.
Сазнајте више о овом концепту и чему служи свака од девет могућих ХТТП метода.
Шта је ХТТП метода?
Сваки ХТТП захтев који направите укључује радњу и циљ за ту радњу, слично као глагол и именица који се понашају као објекат.
УРЛ идентификује јединствени ресурс, који делује као циљ захтева. У међувремену, глагол – која радња да се изврши на тој УРЛ адреси – је представљен методом.
Први ред ХТТП захтева пружа најважније информације укључујући ХТТП верзију, УРЛ ресурса и метод захтева:
ГЕТ /софтваре/хтп/цицс/индек.хтмл ХТТП/1.1
Шта је 9 ХТТП метода?
Прве четири методе су еквивалентне четири радње из ЦРУД модела: Креирај, Читај, Ажурирај и Избриши. Одговарајуће ХТТП методе су ПОШТА, ДОБИТИ, СТАВИТИ, и ИЗБРИШИ.
ДОБИТИ
Најчешћи, подразумевани захтев који ћете послати када прегледате веб и кликнете на везе или захтевате податке преко АПИ-ја. Сервер треба да врати ресурс у свом телу одговора.
ПОШТА
Користите ПОСТ за креирање нових ресурса, посебно када ти ресурси имају родитељски ресурс који се може идентификовати. На пример, ако имате /цлиентс ресурс, требало би да креирате новог клијента тако што ћете ОБЈАВИТИ потребне податке у /цлиентс.
СТАВИТИ
Ажурирајте или замените постојећи ресурс. Ово је слично ПОСТ-у, али клијент је одговоран за избор јединственог идентификатора за ресурс. Да бисте креирали ресурс користећи ПУТ, УРЛ ресурса треба да садржи идентификатор, на пример, /clients/007.
ИЗБРИШИ
Користите овај метод да избришете ресурс који наведете у УРЛ-у. Као и све ХТТП методе, подршка зависи од сервера. Свако може дозволити да избрише ресурс, иако би то очигледно било ризично. Обично ће бити потребан сервер који подржава ДЕЛЕТЕ аутентификација и ауторизација.
Две друге методе пружају мале варијације у односу на горе наведено: ЗАКРПА и ГЛАВА. Можда ће вам бити корисни када користите одређене АПИ-је или ако правите сопствене.
ЗАКРПА
Метод ПАТЦХ ажурира постојећи ресурс, са само делимичним подацима. Другим речима, не морате да обезбедите пуну репрезентацију новог ресурса, већ само поља која треба да ажурирате.
ГЛАВА
ХЕАД захтев је када желите информације о ресурсу, али не и самом ресурсу. Одговор неће садржати тело, али ће садржати скуп корисних ХТТП заглавља. Можете сазнати укупну величину датотеке пре него што је преузмете преко заглавља одговора Цонтент-Ленгтх.
Преостале методе -ОПЦИЈЕ, ЦОННЕЦТ, и ТРАЦЕ— су нејасније. Они се баве метаподацима, умрежавањем и решавањем проблема. Можда ће вам бити корисни у одређеним врстама програмирања, али их вероватно нећете користити сваки дан.
ОПЦИЈЕ
Сервер треба да одговори на овај метод тако што ће вам рећи које ХТТП методе ресурс заправо подржава. Ово може бити корисно за откривање.
ЦОННЕЦТ
Одређени типови мрежног софтвера могу користити овај метод за успостављање тунела између два рачунара. Ово се често користи за покретање ХТТПС везе преко проксија.
ТРАЦЕ
Овај метод је користан за решавање проблема. Када га прими, сервер треба да врати захтев који је примио у телу одговора. Метод обезбеђује механизам за проверу да ли су посредне машине промениле неке детаље захтева.
ГЕТ и ХЕАД су једине две методе које подржава сваки општи веб сервер. Одређени сервер може или не мора подржавати друге методе, тако да прво треба да проверите.
Када бисте могли да користите ове методе?
У већини случајева, ХТТП методе ће вам бити транспарентне. Међутим, мораћете да их узмете у обзир ако додате образац на веб страницу или користите АПИ.
ХТТП методе у ХТМЛ-у
Тхе форму елемент’с методом атрибут вам омогућава да подесите ХТТП метод да се користи када се образац пошаље. ХТМЛ подржава само пошта и добити вредности за овај атрибут—плус нејасна алтернатива дијалогу.
<формуметодом="пошта">
...
форму>
Можете користити функције као што су Цхроме-ове алатке за програмере за преглед Мрежа саобраћаја и потврдите метод који ваш претраживач шаље за одређени захтев. Имајте на уму да ће већина веб образаца послати ПОСТ пошто обично ажурирају податке на серверу. Многи обрасци за претрагу, међутим, користе ГЕТ јер једноставно преузимају податке без промене.
Пошто ПОСТ подаци нису део УРЛ-а, они су приватнији него ако их пошаљете путем ГЕТ-а. Подаци и даље постоје у телу захтева где, теоретски, нападач може да их пресретне. Али слање података преко ХТТПС-а требало би да ублажи овај проблем.
Никада не би требало да имплементирате пријаву корисника са ГЕТ захтевима. Иако пријављивање може изгледати више као операција читања него креирање или ажурирање, и даље морате да користите ПОСТ да бисте заштитили податке.
Пошто ХТМЛ обрасци подржавају само ГЕТ и ПОСТ, не можете директно да креирате образац који, на пример, брише ресурс на серверу. Уобичајено решење, које поштује РЕСТ принципе на серверу, је коришћење променљиве чувара места и претварање да је то био оригинални ХТТП метод. На пример:
<формуметодом="пошта">
<улазнитип="сакривен"име="_метход"вредност=„ИЗБРИШИ“ />
...
форму>
Ваш код на страни сервера може да провери присуство ове променљиве „прокси методе“ и да је третира као да је то прави метод који се користи. На пример, у ПХП-у:
$метход = $_СЕРВЕР[„РЕКУЕСТ_МЕТХОД“];
ако (арраи_кеи_екистс("_метход", $_РЕКУЕСТ)) {
$метход = $_РЕКУЕСТ["_метход"];
}
Програмско слање ХТТП захтева
АПИ за Веб Фетцх обезбеђује ЈаваСцрипт функцију фетцх() коју можете да користите за слање ХТТП захтева. Подржава читав низ метода, а не само ГЕТ и ПОСТ које подржава ХТМЛ.
Функција преузимања ће подразумевано послати ГЕТ захтев. Да бисте користили други метод, наведите његово име као вредност за а методом својство у објекту који шаљете као други аргумент.
донеси (' https://example.com/', { методом: "ГЛАВА" });
Такође можете да шаљете ХТТП захтеве са многих језика на страни сервера, укључујући ПХП. У том језику, цурл библиотека је уобичајен начин слања таквих захтева.
Цурл библиотека има опцију ЦУРЛОПТ_ЦУСТОМРЕКУЕСТ коју можете подесити да наведе метод
ако ($цх = цурл_инит($урл)) {
цурл_сетопт($цх, ЦУРЛОПТ_ЦУСТОМРЕКУЕСТ, 'СТАВИТИ');
цурл_екец($цх);
// ...
}
Преко командне линије
Алат командне линије цурл омогућава вам пренос података на или са сервера, преко једног од неколико протокола. ХТТП (и ХТТПС) су два врло уобичајена случаја употребе.
Цурл подразумевано шаље ГЕТ захтев, што можете потврдити следећом командом:
цурл -в -с -о /дев/нулл екампле.цом/гет-тест
Можете видети метод захтева у петом реду излаза:
Можете да промените метод захтева који цурл шаље помоћу -Кс заставице:
цурл -в -с -о /дев/нулл екампле.цом/гет-тест -Кс ПОСТ
Сада, цурл шаље захтев користећи ПОСТ метод:
ХТТП има много употреба
Већина онога што радите на вебу ће укључивати стандардне ГЕТ захтеве, уз повремени ПОСТ за подношење обрасца. Али ХТТП је много изражајнији протокол него што ово сугерише.
Неке од најчешћих метода одражавају ЦРУД модел који ХТТП чини одличном основом за изградњу АПИ-ја фокусираног на ресурсе.