У свету веб развоја, ХТТП кодови грешака играју виталну улогу у утицају на корисничко искуство и репутацију веб локације. У овом чланку ћемо размотрити комплетну листу серверских кодова грешака, анализирати њихова значења и научити како да ефикасно тумачимо кодове одговора сервера да бисмо решили проблеме и оптимизовали перформансе веб апликација.
Шта је ХТТП код одговора
ХТТП код одговора је језик веб сервера који преводи захтеве претраживача у разумљива упутства. То је као да песник одговара на виртуелна питања, дајући им смисао и правац. Кодови одговора нису увек ХТТП кодови грешака. На пример, „200 ОК“ значи да је све у реду, али ХТТП грешка „404 Нот Фоунд“ значи када је страница изгубљена у виртуелном простору. Сваки код је јединствен израз стања сервера, чије декодирање нам омогућава да разумемо шта се дешава на другој страни виртуелног света.
1кк кодови (информације)
1кк статусни кодови у ХТТП протоколу су нека врста прве везе у дијалогу између сервера и клијента. Уместо комплетног одговора на захтев, они пружају информације о тренутном статусу, чинећи размену података ефикаснијом. Хајде да их ближе погледамо:
100 Настави . HTTP код одговора у којем сервер даје зелено светло кориснику, омогућавајући му да безбедно настави слање великог захтева.
101 Промена протокола . Сервер обавештава клијента да мења правила игре, на пример, прелази са HTTP на безбеднији HTTPS. У овом случају, заглавље „Upgrade“ се користи за промену протокола.
102 Обрада . Овај код је као порука да је сервер прихватио захтев, али је и даље заузет сложеном операцијом.
103 Рани савети . Овде сервер шаље неколико индикативних заглавља клијенту пре главног одговора, упозоравајући на нешто што би могло бити релевантно у блиској будућности.
2кк код (успешно)
ХТТП кодови грешке у групи 2кк указују на успешан захтев са сервера. Они у суштини делују као „зелено светло“ у домену веб комуникација, потврђујући да све иде по плану и да је успешно завршено.
200 OK . Овај статус се користи када сервер обради захтев GET методом без проблема и врати тражене податке као одговор. Заглавље „Content-Type“ приказује тип садржаја у одговору. Оно само обавештава клијента да је захтев био успешан.
201 Креирано . Овде сервер објављује креирање новог ресурса.
202 Прихваћено . Сервер обавештава корисника да је захтев прихваћен, али ће бити потребно време да одговори.
203 Неауторитативне информације . Овај код пружа клијенту податке који можда нису званични, али се могу користити за поређење.
204 Нема садржаја . Сервер је обрадио захтев, али не враћа никакав додатни садржај.
205 Ресетуј садржај . Овде се клијенту налаже да ресетује тренутни приказ или податке након слања.
206 Делимични садржај . Овај случај указује да одговор садржи само део траженог садржаја. Заглавље „Content-Range“ означава делимични опсег садржаја.
207 Вишеструки статус. Сервер је успешно завршио захтев за више операција од клијента, а одговор садржи информације о статусу сваке од операција.
226 IM коришћен . Овај код указује да је сервер користио метод инкременталних метаподатака (IM) и одговорио тако што је клијенту проследио само модификоване делове ресурса.
3кк кодови (преусмјеравања)
3кк кодови у ХТТП протоколу су попут показивача који воде корисника до нове локације ресурса. Они обавештавају клијента да се морају предузети додатни кораци да би се добио тражени садржај или да би се преусмерио на други ресурс. Хајде да уронимо у детаље сваког од њих:
300 Вишеструки избори . Клијент добија сигнал да постоји неколико могућих локација за ресурс и добија избор као одговор. У тренутним околностима, заглавље „Локација“ може указивати на алтернативне опције за ресурс.
301 Трајно премештено. Сервер обавештава корисника да је ресурс трајно премештен на другу локацију.
Пронађено је 302. Овај HTTP код је сличан привременом преусмеравању. Сервер обавештава корисника да је ресурс привремено доступан на другој URL адреси. Заглавље „Локација“ указује на нову URL адресу за привремено преусмеравање.
303 Види Остало . Клијенту се говори да је ресурс доступан на другој URL адреси и да мора да упути GET захтев овој новој адреси.
304 Није измењено . Овај статус говори клијенту да је ресурс остао непромењен од последњег захтева и да га није потребно поново преузимати. Приликом подношења захтева, заглавље „If-Modified-Since“ се користи да би се проверило да ли је ресурс измењен.
305 Користи прокси. Као одговор, сервер извештава да треба да користи наведени прокси за приступ траженом ресурсу.
306 (резервисано) — Код је резервисан, али се заправо не користи.
307 Привремено преусмеравање . Овај код је сличан коду 302 Пронађено, али захтева да клијент остане у методи захтева која је коришћена у оригиналном захтеву.
308 Трајно преусмеравање . Означава да је ресурс трајно премештен на нови URI и да клијент треба да користи нови URI за све будуће захтеве.
4кк ХТТП грешка (грешке клијента)
ХТТП 4кк кодови грешака указују на грешке клијента. То значи да је проблем на страни корисника, као што је веб прегледач или апликација.
400 Лош захтев . Сервер не може да обради захтев због синтаксних грешака, неважећих података или других грешака на страни клијента.
401 Неовлашћено. Сервер не може да обради захтев због синтаксних грешака, неважећих података или других грешака на страни клијента.
402 Потребна је уплата . Код тренутно није активан и резервисан је за будућу употребу. Може указивати на потребу плаћања пре приступа ресурсу у будућности.
HTTP грешка 403 Забрањено. Клијент нема довољна права за приступ траженом ресурсу.
404 Није пронађено. Захтевани ресурс не постоји на серверу. Ово је једна од најчешћих корисничких грешака.
405 Метод није дозвољен . Сервер не подржава наведени метод захтева током овог ресурса. Заглавље „Дозволи“ означава дозвољене методе за ресурс. Са овим кодом,
406 Није прихватљиво. Сервер не може да пружи податке у формату који клијент може да прихвати.
407 Потребна је аутентификација проксија . За приступ траженом ресурсу потребна је аутентификација на прокси серверу.
408 Временско ограничење захтева . Сервер је чекао да прими захтев од клијента, али је време истекло. Заглавље „Retry-After“ може да назначи време након којег се захтев може поново покушати.
409 Сукоб. Захтев не може бити завршен због сукоба са тренутним стањем ресурса.
410 Нестао . Захтевани ресурс је раније постојао, али је сада обрисан и не очекује се његово враћање.
411 Потребна дужина . Сервер захтева да се у захтеву наведе дужина садржаја; одсуство ове информације се сматра грешком.
412 Предуслов није испуњен . Предуслов у захтеву није испуњен, што спречава његово извршавање.
413 Корисни терет је превелик . Величина захтеваних података прелази ограничења сервера.
414 URI је предугачак . Дужина URI-ја у захтеву прелази прихватљива ограничења.
415 Неподржани тип медија . Сервер не може да обради тип података наведен у захтеву.
416 Опсег није задовољавајући . HTTP грешка где захтевани опсег не одговара тренутним подацима сервера.
417 Очекивање није успело . Очекивани услов у заглављу „Очекивање“ није испуњен.
418 Ја сам чајник . Овај код је укључен као шала и не подразумева никакву стварну акцију за корисника или сервера, и није потпуна грешка. Указује да је сервер чајник и да није у стању да прави кафу.
421 Погрешно усмерен захтев . Сервер не обрађује захтев због грешке у захтеву или конфигурацији сервера.
422 Необрадив ентитет . Сервер разуме захтев, али га не обрађује због грешака у подацима.
423 Закључано. Ресурс је блокиран и не може се обрадити.
424 Неуспешна зависност . Захтев зависи од другог неизвршеног захтева.
425 Прерано. Сервер није спреман да обради захтев због његовог раног доласка.
426 Потребна је надоградња . Сервер захтева употребу напреднијег протокола за обраду захтева.
428 Потребан предуслов . Сервер захтева да се у захтеву наведу одређени предуслови.
429 Превише захтева . Клијент је послао превише захтева за кратко време, прекорачујући ограничења сервера.
431 Поља заглавља захтева су превелика . Заглавља захтева прелазе максимално дозвољену величину.
449 Покушај поново са. Означава да захтев не може да покрене тренутни сервер, али да га други сервер може успешно обрадити и да клијент треба да поново покуша захтев са новим URI-јем.
451 Недоступно из правних разлога . Ресурс није доступан из правних разлога.
499 Клијент је затворио захтев . Сервер је примио захтев, али је клијент затворио везу пре завршетка обраде.
ХТТП 5кк грешка (грешке сервера)
ХТТП 5кк кодови грешке указују на проблеме са сервером. Ови кодови указују на проблеме који су се десили на страни сервера, због чега сервер није у могућности да обради захтев корисника на прави начин. Хајде да их ближе погледамо:
HTTP грешка 500 Интерна грешка сервера . Сервер наилази на неочекиване околности које га спречавају да заврши захтев. Заглавље „Сервер“ може указивати на сервер на којем се грешка догодила.
501 Није имплементирано . Сервер не подржава функционалност потребну за обраду клијентског захтева. Заглавље „Via“ може указивати на прокси сервер преко којег је дошло до грешке.
502 Bad Gateway . Овај код значи да је сервер који делује као прокси примио нетачан одговор од другог сервера.
HTTP грешка 503 Услуга није доступна . Сервер тренутно не може да обрађује захтеве.
504 Временско ограничење пролаза . Сервер, који делује као прокси, није благовремено добио одговор од другог сервера.
505 HTTP верзија није подржана . Сервер не подржава HTTP верзију протокола наведену у захтеву. Као резервна опција, заглавље „Надоградња“ може назначити подржане протоколе.
506 Варијанта такође преговара . Овај статус се не користи у HTTP/1.1; међутим, ако сервер открије интерну конфигурацију која доводи до двосмислености у преговарању садржаја, може користити овај одговор.
507 Недовољно простора за складиштење . Сервер не може да испуни захтев због недовољног простора за складиштење на серверу.
508 Откривена петља . Сервер је открио петљу током обраде захтева и одбија да је заврши како би избегао бесконачну петљу.
509 Прекорачење ограничења пропусног опсега . Грешка се јавља када је прекорачен пропусни опсег сервера због великог броја захтева или саобраћаја.
510 Није продужено . Клијент мора да пренесе додатне екстензије да би наставио захтев.
511 Потребна је мрежна аутентификација . Клијент мора да се аутентификује да би добио приступ мрежи.
Како проверити статусни код странице
У овом одељку ћемо размотрити три главна начина за проверу статусног кода странице: преко командне линије, коришћењем веб прегледача и коришћењем независних онлајн услуга. Свака од ових метода има своје предности и може бити корисна у различитим ситуацијама.
Провера одговора сервера преко командне линије
Командна линија пружа згодан начин да проверите статусни код странице без потребе за коришћењем веб претраживача. За овај метод, потребно је да отворите командну линију и користите команду:
curl -I http://page-address
Ова команда шаље ХЕАД захтев (захтев само заглавља) на наведени УРЛ и приказује информације укључујући ХТТП статусни код:
Пример изнад показује успешан код одговора. У случају одговора који садржи код грешке, као што је ХТТП грешка 404 Нот Фоунд, резултат ће изгледати слично:
Провера одговора сервера преко конзоле претраживача
Конзола за програмере веб претраживача пружа алате за обављање различитих операција, укључујући проверу статусног кода странице. Да бисте видели ХТТП код у одговору сервера, потребно је да отворите конзолу за програмере (Цтрл+Схифт+К) или (Цтрл+схифт+Ј) у зависности од претраживача који се користи. Затим изаберите одељак „мрежа“ и учитајте жељену страницу:
Провера одговора сервера коришћењем независних алата
Постоји велики број независних онлајн сервиса који пружају алате за проверу статусног кода веб странице. Ови сервиси вам обично омогућавају да брзо добијете преглед доступности и перформанси вашег ресурса. Сви они функционишу по истом принципу. Као пример, размотрићемо најпопуларнији ресурс - httpsstatus.io
Пре свега, потребно је да отворите саму услугу, затим унесете адресу странице на којој морате да сазнате одговор и затражите верификацију:
Резултат ће бити приказан на дну странице:
Закључак
У закључку, треба нагласити да је разумевање и способност читања ХТТП кодова грешака кључна вештина за све који се баве развојем веба и одржавањем сервера. Док откривамо сваку грешку и истражујемо алате за њихово откривање, видимо разлоге зашто је толико важно ефикасно управљати овим аспектима веб услуга.