Знания Прости инструкции за работа с услугата Profitserver
основен Знания HTTP кодове за грешки: пълен списък на сървърни грешки

HTTP кодове за грешки: пълен списък на сървърни грешки


В света на уеб разработката HTTP кодовете за грешки играят жизненоважна роля за повлияване на потребителското изживяване и репутацията на даден уебсайт. В тази статия ще разгледаме пълен списък с кодове за грешки на сървъра, ще анализираме техните значения и ще научим как ефективно да интерпретираме кодовете за отговор на сървъра, за да разрешим проблеми и да оптимизираме производителността на уеб приложенията.

Какво е HTTP код за отговор

HTTP кодът за отговор е езикът на уеб сървърите, който превежда заявките на браузъра в разбираеми инструкции. Това е като поет, който отговаря на виртуални въпроси, като им дава смисъл и посока. Кодовете за отговор не винаги са HTTP кодове за грешки. Например „200 OK“ означава, че всичко е наред, но HTTP грешка „404 не е намерена“ означава, че страницата е изгубена във виртуалното пространство. Всеки код е уникален израз на състоянието на сървъра, чието декодиране ни позволява да разберем какво се случва от другата страна на виртуалния свят.

1xx кодове (информация)

1xx статус кодове в HTTP протокола са нещо като първа връзка в диалога между сървъра и клиента. Вместо да предоставят пълен отговор на заявка, те предоставят информация за текущото състояние, което прави обмена на данни по-ефективен. Нека ги разгледаме по-отблизо:

100 Продължи . HTTP код за отговор, в който сървърът дава зелена светлина на потребителя, позволявайки му безопасно да продължи изпращането на голяма заявка.

101 Превключване на протоколи . Сървърът казва на клиента, че променя правилата на играта, например преминава от HTTP към по-сигурния HTTPS. В този случай за промяната на протокола се използва заглавката „Upgrade“.

102 Обработка . Този код е като съобщение, че сървърът е приел заявката, но все още е зает със сложна операция.

103 Ранни съвети . Тук сървърът изпраща няколко индикативни заглавки на клиента преди основния отговор, предупреждавайки за нещо, което може да е от значение в близко бъдеще.

2xx код (успешно)

HTTP кодовете за грешка в групата 2xx показват успешна заявка от сървъра. Те по същество действат като „зелена светлина“ в обхвата на уеб комуникациите, потвърждавайки, че всичко върви по план и е успешно завършено.

200 OK . Този статус се използва, когато сървърът обработва заявка чрез GET метод без проблеми и връща заявените данни в отговор. Заглавката "Content-Type" съобщава типа съдържание в отговора. Тя просто информира клиента, че заявката е била успешна.

201 Създадено . Тук сървърът обявява създаването на нов ресурс.

202 Прието . Сървърът уведомява потребителя, че заявката е приета, но ще отнеме време за отговор.

203 Неавторитетна информация . Този код предоставя на клиента данни, които може да не са официални, но могат да бъдат използвани за сравнение.

204 Няма съдържание . Сървърът е обработил заявката, но не връща никакво допълнително съдържание.

205 Нулиране на съдържание . Тук клиентът е инструктиран да нулира текущия изглед или данни след изпращане.

206 Частично съдържание . Този случай показва, че отговорът съдържа само част от заявеното съдържание. Заглавката „Content-Range“ показва частичния диапазон на съдържание.

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 Време за изчакване на заявката . Сървърът е чакал да получи заявка от клиента, но времето за изчакване е изтекло. Заглавката „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 Клиентът е затворил заявката . Сървърът е получил заявката, но връзката е била затворена от клиента преди завършване на обработката.

HTTP 5xx грешка (грешки на сървъра)

Кодовете за грешка HTTP 5xx показват проблеми със сървъра. Тези кодове показват проблеми, възникнали от страна на сървъра, което прави сървъра неспособен да обработи заявката на потребителя по правилния начин. Нека ги разгледаме по-отблизо:

HTTP грешка 500 Вътрешна грешка на сървъра . Сървърът се сблъсква с неочаквани обстоятелства, които му пречат да завърши заявката. Заглавката „Сървър“ може да посочва сървъра, на който е възникнала грешката.

501 Не е внедрено . Сървърът не поддържа функционалността, необходима за обработка на заявката на клиента. Заглавката „Via“ може да показва прокси сървъра, през който е възникнала грешката.

502 Bad Gateway . Този код означава, че сървърът, който действа като прокси, е получил неправилен отговор от друг сървър.

HTTP грешка 503 Услугата е недостъпна . Сървърът временно не може да обработва заявки.

504 Време на изчакване на шлюза . Сървърът, който действа като прокси, не е получил навременен отговор от друг сървър.

505 HTTP версията не се поддържа . Сървърът не поддържа HTTP версията на протокола, посочена в заявката. Като резервна опция, заглавката „Upgrade“ може да посочва поддържаните протоколи.

506 Вариантът също така преговаря . Този статус не се използва в HTTP/1.1; ако обаче сървърът открие вътрешна конфигурация, която води до неяснота при договаряне на съдържание, той може да използва този отговор.

507 Недостатъчно място за съхранение . Сървърът не може да изпълни заявката поради недостатъчно място за съхранение на сървъра.

508 Открит е цикъл . Сървърът е открил цикъл при обработката на заявката и отказва да я изпълни, за да избегне безкраен цикъл.

509 Превишен е лимитът на честотната лента . Грешката възниква, когато честотната лента на сървъра е превишена поради голям обем заявки или трафик.

510 Не е удължено . Клиентът трябва да прехвърли допълнителни разширения, за да продължи заявката.

511 Изисква се мрежово удостоверяване . Клиентът трябва да се удостовери, за да получи достъп до мрежата.

Как да проверите кода на състоянието на страницата

В този раздел ще разгледаме три основни начина за проверка на кода на състоянието на страницата: чрез командния ред, с помощта на уеб браузър и с помощта на независими онлайн услуги. Всеки от тези методи има своите предимства и може да бъде полезен в различни ситуации.

Проверка на отговора на сървъра чрез командния ред

Командният ред предоставя удобен начин за проверка на кода на състоянието на страницата, без да се налага да използвате уеб браузър. За този метод трябва да отворите командния ред и да използвате командата:

curl -I http://page-address

Тази команда изпраща HEAD заявка (заявка само за заглавки) към посочения URL адрес и показва информация, включително HTTP кода на състоянието:

Проверка на HTTP кода за отговор на Curl сървъра

Примерът по-горе показва код за успешен отговор. В случай на отговор, който съдържа код за грешка, като 404 Не е намерена HTTP грешка, резултатът ще изглежда подобно:

Код на грешка HTTP грешка 404 Не е намерен

Проверка на отговора на сървъра чрез конзолата на браузъра

Конзолата за разработчици на уеб браузър предоставя инструменти за извършване на различни операции, включително проверка на кода на състоянието на страницата. За да видите HTTP кода в отговора на сървъра, трябва да отворите конзолата за програмисти (Ctrl+Shift+K) или (Ctrl+shift+J) в зависимост от използвания браузър. След това изберете секцията „мрежа“ и заредете желаната страница:

Диагностика на кода на HTTP отговор на сървъра на браузъра

Проверка на отговора на сървъра с помощта на независими инструменти

Съществува голям брой независими онлайн услуги, които предоставят инструменти за проверка на кода за състояние на страницата на уебсайта. Тези услуги обикновено ви позволяват бързо да получите общ преглед на наличността и производителността на вашия ресурс. Всички те работят на един и същ принцип. Като пример ще разгледаме най-популярния ресурс - httpsstatus.io

Първо трябва да отворите самата услуга, след това да въведете адреса на страницата, чийто отговор трябва да намерите, и да поискате проверка:

Код на отговор на HTTP сървър за независими услуги

Резултатът ще се покаже в долната част на страницата:

Успешен код за отговор на HTTP сървъра

Заключение

В заключение трябва да се подчертае, че разбирането и възможността за четене на HTTP кодове за грешки е ключово умение за всеки, който се занимава с уеб разработка и поддръжка на сървъри. Докато откриваме всяка грешка и изследваме инструментите за откриването им, виждаме причините защо е толкова важно ефективното управление на тези аспекти на уеб услугите.

❮ Предишна статия Как да проверите пощенския сървър
Следваща статия ❯ Как да добавите допълнителен IP адрес към Windows сървър

Попитайте ни за VPS

Винаги сме готови да отговорим на вашите въпроси по всяко време на деня и нощта.