Во светот на веб-развојот, шифрите за грешки на HTTP играат витална улога во влијанието на корисничкото искуство и репутацијата на веб-локацијата. Во оваа статија, ќе разгледаме комплетна листа на кодови за грешки на серверот, ќе ги анализираме нивните значења и ќе научиме како ефикасно да ги толкуваме кодовите за одговор на серверот со цел да ги решиме проблемите и да ги оптимизираме перформансите на веб-апликациите.
Што е код за одговор на HTTP
Кодот за одговор на HTTP е јазикот на веб-серверите што ги преведува барањата на прелистувачот во разбирливи инструкции. Тоа е како поет кој одговара на виртуелни прашања, давајќи им смисла и насока. Кодовите за одговор не се секогаш кодови за грешки на HTTP. На пример, „200 OK“ значи дека сè е во ред, но HTTP грешка „404 Not Found“ значи кога страницата е изгубена во виртуелниот простор. Секој код е единствен израз на состојбата на серверот, чие декодирање ни овозможува да разбереме што се случува на другата страна на виртуелниот свет.
1xx кодови (информации)
1xx статусните кодови во протоколот HTTP се еден вид прва врска во дијалогот помеѓу серверот и клиентот. Наместо да дадат целосен одговор на барање, тие обезбедуваат информации за моменталниот статус, со што размената на податоци е поефикасна. Да ги погледнеме подетално:
100 Продолжи . HTTP код за одговор во кој серверот му дава зелено светло на корисникот, дозволувајќи му безбедно да продолжи да испраќа големо барање.
101 Префрлување на протоколи . Серверот му кажува на клиентот дека ги менува правилата на играта, на пример, преминува од HTTP на побезбеден HTTPS. Во овој случај, заглавието „Надградба“ се користи за промена на протоколот.
102 Обработка . Овој код е како порака дека серверот го прифатил барањето, но сè уште е зафатен со сложена операција.
103 Рани совети . Тука серверот испраќа неколку индикативни заглавија до клиентот пред главниот одговор, предупредувајќи за нешто што може да биде релевантно во блиска иднина.
2xx код (успешно)
Кодовите за грешка на HTTP во групата 2xx укажуваат на успешно барање од серверот. Тие во суштина делуваат како „зелено светло“ во опсегот на веб-комуникации, потврдувајќи дека сè оди според планот и е успешно завршено.
200 Во ред . Овој статус се користи кога серверот обработува барање преку методот GET без проблеми и ги враќа бараните податоци како одговор. Заглавието „Content-Type“ го пријавува типот на содржина во одговорот. Само го информира клиентот дека барањето е успешно.
201 Креирано . Тука серверот го најавува креирањето на нов ресурс.
202 Прифатено . Серверот го известува корисникот дека барањето е прифатено, но ќе биде потребно време за да одговори.
203 Неавторитативни информации . Овој код му обезбедува на клиентот податоци кои можеби не се официјални, но можат да се користат за споредба.
204 Нема содржина . Серверот го обработи барањето, но не враќа дополнителна содржина.
205 Ресетирај содржина . Тука на клиентот му се наложува да го ресетира тековниот преглед или податоци по испраќањето.
206 Делумна содржина . Овој случај покажува дека одговорот содржи само дел од бараната содржина. Заглавието „Опсег на содржина“ го означува делумниот опсег на содржина.
207 Мултистатус. Серверот успешно го заврши барањето за повеќе операции од клиентот, а одговорот содржи информации за статусот на секоја од операциите.
226 Користен IM . Овој код покажува дека серверот го користел методот на инкрементални метаподатоци (IM) и одговорил со пренесување само на изменетите делови од ресурсите до клиентот.
3xx кодови (пренасочувања)
Кодовите 3xx во протоколот HTTP се како покажувачи кои го водат корисникот до нова локација на ресурси. Тие го информираат клиентот дека мора да се преземат дополнителни чекори за да се добие бараната содржина или да се пренасочи на друг ресурс. Ајде да потонеме во деталите за секоја од нив:
300 Повеќекратни избори . Клиентот добива сигнал дека постојат неколку можни локации за ресурсот и како одговор му се дава избор. Во сегашните околности, заглавието „Локација“ може да означува алтернативни опции за ресурсот.
301 Трајно преместено. Серверот го известува корисникот дека ресурсот е трајно преместен на друга локација.
Пронајдени се 302. Овој HTTP код е сличен на привремено пренасочување. Серверот го информира потрошувачот дека ресурсот е привремено достапен на друга URL адреса. Заглавието „Локација“ укажува на новата URL адреса за привременото пренасочување.
303 Видете Друго . На клиентот му е кажано дека ресурсот е достапен на друга URL адреса и мора да направи GET барање до оваа нова адреса.
304 Не е изменето . Овој статус му кажува на клиентот дека ресурсот останал непроменет од последното барање и не треба повторно да се презема. При поднесување барање, заглавието „If-Modified-Since“ се користи за да се провери дали ресурсот е изменет.
305 Користи прокси. Како одговор, серверот известува дека треба да го користи наведениот прокси за пристап до бараниот ресурс.
306 (резервиран) — Кодот е резервиран, но всушност не се користи.
307 Привремено пренасочување . Овој код е сличен на 302 Пронајдено, но бара клиентот да остане во методот на барање што бил користен во оригиналното барање.
308 Трајно пренасочување . Означува дека ресурсот направил трајно преместување на нов URI и клиентот треба да го користи новиот URI за сите идни барања.
4xx HTTP грешка (грешки на клиентот)
Кодовите за грешка HTTP 4xx укажуваат на грешки на клиентот. Ова значи дека проблемот е на корисничката страна, како што е веб-прелистувачот или апликацијата.
400 Лошо барање . Серверот не може да го обработи барањето поради синтаксички грешки, невалидни податоци или други грешки од страната на клиентот.
401 Неовластено. Серверот не може да го обработи барањето поради синтаксички грешки, неважечки податоци или други грешки од страната на клиентот.
402 Потребно е плаќање . Кодот моментално не е активен и е резервиран за идна употреба. Може да укажува на потреба од плаќање пред пристап до ресурсот во иднина.
HTTP грешка 403 Забрането. Клиентот нема доволно права за пристап до бараниот ресурс.
404 Не е пронајден. Бараниот ресурс не постои на серверот. Ова е една од најчестите грешки на корисниците.
405 Методот не е дозволен . Серверот не го поддржува наведениот метод на барање во текот на овој ресурс. Заглавието „Дозволи“ ги означува дозволените методи за ресурсот. Со овој код,
406 Не е прифатливо. Серверот не може да обезбеди податоци во формат што може да го прифати клиентот.
407 Потребна е автентикација на прокси сервер . За пристап до бараниот ресурс е потребна автентикација на прокси сервер.
408 Временски истек на барањето . Серверот чекаше да прими барање од клиентот, но времето истече. Заглавието „Повторен обид-после“ може да го означи времето по кое барањето може да се обиде повторно.
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 Барање затворено од клиентот . Серверот го прими барањето, но врската беше затворена од клиентот пред да заврши обработката.
Грешка HTTP 5xx (Грешки на серверот)
Кодовите за грешка HTTP 5xx укажуваат на проблеми со серверот. Овие кодови укажуваат на проблеми што се појавиле на страната на серверот, поради што серверот не може да го обработи барањето на корисникот на правилен начин. Да ги погледнеме подетално:
HTTP Грешка 500 Внатрешна грешка на серверот . Серверот наидува на неочекувани околности што го спречуваат да го заврши барањето. Заглавието „Сервер“ може да го означи серверот на кој се појавила грешката.
501 Не е имплементирано . Серверот не ја поддржува функционалноста потребна за обработка на барањето на клиентот. Заглавието „Преку“ може да го означува прокси-серверот преку кој се појавила грешката.
502 Лош портал . Овој код значи дека серверот што делува како прокси добил неточен одговор од друг сервер.
HTTP грешка 503 Услугата е недостапна . Серверот привремено не е во можност да обработува барања.
504 Истек на време на порталот . Серверот, кој делува како прокси, не доби навремен одговор од друг сервер.
505 HTTP верзијата не е поддржана . Серверот не ја поддржува верзијата на HTTP протоколот наведена во барањето. Како опција за резервна копија, заглавието „Надградба“ може да означува поддржани протоколи.
506 Варијантата исто така преговара . Овој статус не се користи во HTTP/1.1; меѓутоа, ако серверот детектира внатрешна конфигурација што резултира со двосмисленост во преговарањето за содржината, може да го користи овој одговор.
507 Недоволен простор за складирање . Серверот не може да го исполни барањето поради недоволен простор за складирање на серверот.
508 Детектирана е јамка . Серверот детектирал јамка при обработката на барањето и одбива да го заврши барањето за да избегне бесконечна јамка.
509 Ограничувањето на пропусниот опсег е надминато . Грешката се јавува кога пропусниот опсег на серверот е надминат поради голем обем на барања или сообраќај.
510 Не е продолжено . Клиентот мора да пренесе дополнителни проширувања за да го продолжи барањето.
511 Потребна е мрежна автентикација . Клиентот мора да се автентицира за да добие пристап до мрежата.
Како да го проверите кодот за статус на страницата
Во овој дел, ќе разгледаме три главни начини за проверка на кодот за статус на страницата: преку командната линија, користење на веб-прелистувач и користење независни онлајн услуги. Секој од овие методи има свои предности и може да биде корисен во различни ситуации.
Проверка на одговорот на серверот преку командната линија
Командната линија обезбедува пригоден начин за проверка на кодот за статус на страницата без да мора да користите веб-прелистувач. За овој метод, треба да ја отворите командната линија и да ја користите командата:
curl -I http://page-address
Оваа команда испраќа барање HEAD (барање само за заглавија) до наведената URL-адреса и прикажува информации вклучувајќи ја и статусната шифра на HTTP:
Примерот погоре покажува успешен код за одговор. Во случај на одговор кој содржи код за грешка, како што е грешката 404 Not Found HTTP, резултатот ќе изгледа слично:
Проверка на одговорот на серверот преку конзолата на прелистувачот
Конзолата за развивачи на веб-прелистувач обезбедува алатки за спроведување на различни операции, вклучително и проверка на кодот за статус на страницата. За да го видите HTTP-кодот во одговорот на серверот, треба да ја отворите програмерската конзола (Ctrl+Shift+K) или (Ctrl+shift+J) во зависност од користениот прелистувач. Следно, изберете го делот „мрежа“ и вчитајте ја саканата страница:
Проверка на одговорот на серверот користејќи независни алатки
Постојат голем број независни онлајн услуги кои нудат алатки за проверка на кодот за статус на веб-страницата. Овие услуги обично ви овозможуваат брзо да добиете преглед на достапноста и перформансите на вашиот ресурс. Сите тие работат на ист принцип. Како пример, ќе го разгледаме најпопуларниот ресурс - httpstatus.io
Пред сè, треба да ја отворите самата услуга, потоа да ја внесете адресата на страницата која одговор треба да ја дознаете и да побарате потврда:
Резултатот ќе биде прикажан на дното на страницата:
Заклучок
Како заклучок, треба да се нагласи дека разбирањето и можноста за читање на кодовите за грешки на HTTP е клучна вештина за секој кој е вклучен во развој на веб и одржување на серверот. Додека ја откриваме секоја грешка и ги истражуваме алатките за да ги откриеме, ги гледаме причините зошто е толку важно ефикасно да се управуваат овие аспекти на веб-услугите.