Код стану HTTP (англ. HTTP status code) — частина першого рядка відповіді сервера при запитах за протоколом HTTP. Він є цілим число з трьох арабських цифр. Перша цифра вказує на клас стану. За кодом відповіді зазвичай йде відділена пробілом пояснювальна фраза англійською мовою, яка пояснює людині причину саме такої відповіді. Приклади:
- 201 Webpage Created.
- 401 Access allowed only for registered users.
- 507 Insufficient Storage.
По коду відповіді клієнт дізнається про результати його запиту і визначає, що йому робити далі. Набір кодів стану є стандартом і вони описані у відповідних документах RFC. Введення нових кодів повинно відбуватись тільки після узгодження з IETF. Тим не менш, відомо про два використовуваних кода, не згаданих у RFC: 449 Retry With
. Також згадується пояснювальна фраза «Reply With» в специфікації по WebDAV в Microsoft Developer Network, введений Microsoft і 509 Bandwidth Limit Exceeded
, введений в cPanel.
Клієнт може не знати всі коди стану, але він зобов'язаний відреагувати у відповідності з класом коду. На даний час виділено п'ять класів кодів стану.
Вебсервер Internet Information Services у своїх файлах журналів окрім стандартних кодів стану використовує підкоди, записуючи їх через крапку після основного. При цьому у відповідях від сервера даний підкод не розміщується — він потрібен адміністратору сервера, щоб той міг більш точно визначити джерело проблеми.
Нижченаведений список кодів стану HTTP містить коди відповідно інтернет стандартів IETF, а також і інші IETF RFCs, інші специфікації і деякі інші широковживані коди. Перша цифра статус коду вказує на один з п'яти типів відповідей. HTTP клієнт як мінімум має розпізнавати ці п'ять типів відповідей. офіційний реєстр HTTP статус кодів. підтримує Internet Assigned Numbers Authority (IANA) Microsoft IIS іноді використовує додаткові десяткові субкоди, які містять додаткову інформацію..
1xx Інформаційні Редагувати
Запит отримано, процес продовжується.
Цей клас кодів стану вказує попередню відповідь, що складається лише з статусного рядку і опціональних хедерів, і закінчується пустим рядком. Оскільки стандарт HTTP/1.0 не описує ніяких кодів 1xx, сервер не обов'язково має висилати відповідь формату 1xx клієнту HTTP/1.0.
2xx Успішні операції Редагувати
Цей клас статус кодів вказує на те, що клієнтський запит був отриманий, зрозумілий сервером, прийнятий і успішно оброблений.
3xx Перенаправлення Редагувати
Клієнт повинен вжити додаткових заходів для виконання запиту.
Цей вид кодів вказує, що клієнт має виконати додаткові дії для завершення виконання запиту. Клієнт може виконати конкретні дії без взаємодії з користувачем, у випадках коли метод, що використовується в другому запиті є GET або HEAD. Клієнтська програма не повинна перенаправляти запит більш ніж у п'ять разів, так як такі переадресації зазвичай призводять до нескінченного циклу.
307 і 308 були запропоновані як додаткові коди на додачу до кодів 302 і 301, але з іншою поведінкою, яка не дозволяє змінювати метод запиту HTTP при перенаправленні. Так, наприклад, перенаправлення даних форми за допомогою методу POST на інший ресурс, відбувається автоматично без помилок.
4xx Клієнтська помилка Редагувати
Клас статус кодів 4xx призначений для випадків, в яких клієнт робить неправильні запити. За винятком відповіді на запит HEAD, сервер повинен включити у відповідь пояснення щодо помилкової ситуації, і чи є ця помилка тимчасовою або постійною. Ці коди стану застосовуються до будь-якого методу запиту. Клієнтський браузер повинен повідомляти про ці помилки користувачу.
- 400 Bad Request — Неправильний запит. Запит не може бути виконаний з причини невірного синтаксису.
- 401 Unauthorized — Несанкціонований доступ. Схожа на 403 Forbidden, але використовується спеціально у разі необхідності аутентифікації користувача, яка відбулася невдало, або ще не відбулася перед запитом ресурсу.
- 402 Payment Required — Потрібна оплата. Зарезервовано для майбутнього використання. Спочатку передбачалося, що цей код може бути використаний, як частина схеми безготівкової оплати через мережу, але цього не сталося, і цей код зазвичай не використовується. YouTube використовує цей статус, якщо з конкретної IP-адреси зробили надмірну кількість запитів і вимагає від людини ввести CAPTCHA.
- 403 Forbidden — Заборонено. Запит був коректним, але сервер відмовляється відповідати на нього. На відміну від 401 Unauthorized, не має ніякого значення, чи відбулася аутентифікація.
- 404 Not Found — Не знайдено. Ресурс не знайдено, але він може бути доступний в майбутньому.
- 405 Method Not Allowed — Неприпустимий метод. Метод, з яким виконувався запит, не дозволено використовувати для заданого ресурсу; наприклад, запит був здійснений за методом GET на формі, хоча очікується що дані форми будуть надіслані методом POST, або PUT у випадку, коли цей ресурс тільки для читання.
- 406 Not Acceptable — Неприйнятний запит. Клієнт (тобто веббраузер) може при запиті повідомити вебсерверу параметри щодо обмежень для даних, які клієнт може прийняти назад від сервера: MIME тип, розмір, мова сторінки, кодування чи інше. Якщо вебсервер виявляє, що дані, які він хоче відіслати, не є прийнятними для клієнта, він повертає заголовок, що містить зазначений код помилки.
- 407 Proxy Authentication Required — Потрібна ідентифікація проксі, фаєрвола. Ця помилка трапляється при спробі отримати доступ до вебсайту через проксі-сервер, який вимагає від клієнта пройти процедуру ідентифікації.
- 408 Request Timeout — Час запиту закінчився. На сервері минув час очікування запиту. Клієнт не надіслав запит протягом часу, коли сервер його очікував. Клієнт може повторити запит без модифікацій пізніше в будь-який інший час.
- 409 Conflict — Конфлікт. Вказує, що запит не може бути опрацьований через конфлікт у запиті, наприклад, конфлікт одночасного редагування.
- 410 Gone — Зник. Код вказує, що ресурс, який запитують, більше не існує і не буде доступний в майбутньому. Цей код має використовуватися, коли ресурс був навмисно видалений, або повинен бути видалений. Після отримання коду 410 клієнт не повинен запитувати цей ресурс знову, а пошукові системи повинні видалити цей ресурс зі своїх індексів. Клієнтські програми і пошукові системи не вимагають обов'язкового використання коду 410, тому замість нього може бути використаний код 404.
- 411 Length Required — Потрібно вказати розмір. В заголовку запиту не вказано розмір його змісту. Сервер відмовляється приймати запит без поля заголовка Content-Length.
- 412 Precondition Failed — Збій під час обробки попередньої умови.
- 413 Request Entity Too Large — Тіло запиту перевищує допустимий розмір. Запит більший, ніж сервер здатний обробити.
- 414 Request-URI Too Long — Неприпустима довжина URI запиту. Надіслана строка URI, занадто довга і сервер не може її обробити. Зазвичай виникає коли занадто багато даних передається в параметрах запиту GET. В такому випадку він повинен бути перетворений в запит за методом POST.
- 415 Unsupported Media Type — Тип контенту не підтримується сервером.
- 416 Requested Range Not Satisfiable — Запитуваний діапазон недосяжний.
- 417 Expectation Failed
- 418 I'm a teapot — Я чайник. Цей код з'явився в 1998 році і є одним з традиційних першоквітневих жартів IETF. В стандарті RFC 2324 введений протокол, який називається, «Hyper Text Coffee Pot Control Protocol». Передбачається, що сервер не знає такого протоколу, який за стандартом повинен бути реалізований на серверах HTTP.
- 419 Authentication Timeout — не в RFC 2616. Це нестандартний тип помилки. Вказує, що сеанс з раніше дійсними даними ідентифікації на цьому сервері закінчився.
- 420 Method Failure — (Spring Framework).
- 422 Unprocessable Entity
- 423 Locked — Заблоковано. Використовується в протоколі WebDAV, RFC 4918
- 424 Failed Dependency — Помилка у зв'язках. Використовується в протоколі WebDAV, RFC 4918
- 426 Upgrade Required
- 428 Precondition Required — RFC 6585. Код вказує на те, що сервер вимагає, щоб запит містив додаткові умови. Зазвичай використовується для того, щоб уникнути затирання даних при редагуванні, коли один клієнт отримує ресурс, змінює його і знову відсилає для збереження на сервер, коли тим часом третя сторона встигає змінити цей ресурс, чим призводить до конфлікту. Таким чином сервер вимагає включити у заголовок умову, таку як If-Modified-Since і таким чином виконати умовний запит з перевіркою часу останнього редагування даних.
- 429 Too Many Requests — RFC 6585. Користувач відправив занадто багато запитів в конкретний проміжок часу («обмеження швидкості»). Відповідь сервера повинна містити деталі, що пояснюють стан, і може включати в себе поле заголовку Retry-After, яке вказує, як довго необхідно клієнту чекати, перш ніж сервер буде готовий прийняти новий запит.
- 431 Request Header Fields Too Large — RFC 6585. Сервер відмовляється обробити запит, тому що розмір полів заголовка занадто великий. Код може використовуватись у випадках коли всі поля в цілому мають завеликий розмір, або одне конкретне поле заголовку. В останньому випадку, у відповіді сервер повинен вказати, які саме поля заголовка перевищили допустимий розмір.
- 440 Login Timeout (Microsoft) — Код застосовується Microsoft. Означає, що час активності сесії користувача закінчився.
- 444 No Response (Nginx) — Використовується в Nginx. Вказує, що сервер не повернув ніякої інформації клієнту і закрив з'єднання.
- 449 Retry With (Microsoft) — Додатковий код від Microsoft. Запит повинен бути повторений після виконання певних дій. Часто пошукові машини або застосунки не надсилають у запиті необхідних параметрів, які є обов'язкові. Іноді у відповіді вказується список необхідних параметрів.
- 450 Blocked by Windows Parental Controls (Microsoft) — Додатковий код від Microsoft. З'являється, якщо на комп'ютері увімкнено систему батьківського контролю (англ. Windows Parental Controls), яка блокує доступ до даної вебсторінки.
- 451 Unavailable For Legal Reasons (Internet draft) — Означає, що користувач виконав запит на протизаконний ресурс, заборонений державою.
- 451 Redirect (Microsoft)
- 494 Request Header Too Large (Nginx)
- 495 Cert Error (Nginx)
- 496 No Cert (Nginx)
- 497 HTTP to HTTPS (Nginx)
- 498 Token expired/invalid (Esri)
- 499 Client Closed Request (Nginx)
5xx Серверна помилка Редагувати
Серверу не вдалося виконати запит.
статус коди, що починаються з цифри «5» відносяться до випадків, в яких сервер ідентифікує, що сталася помилка або він по якійсь причині не в змозі виконати запит. Сервер повинен вислати інформацію, що містить пояснення помилкової ситуації, і вказати, чи є це тимчасовим або постійним, за винятком коли він отримував запит в типу HEAD. Зі свого боку, клієнтський браузер повинен повідомляти про будь-яку помилку користувача. Ці коди стану мають місце до будь-якого методу запиту.
Пов'язані жаргонізми Редагувати
Цей розділ не містить посилань на джерела. (лютий 2021) |
В IT-спільноті «ok2xx» означає успішне виконання будь-якої задачі й готовність до нових, що склалося за аналогією з класом кодів успішних операцій 2хх.
На противагу виразові «ok2xx», що означає успіх, «err4xx» — скорочення, яким передають розчарування, або повне нерозуміння суті того що відбувається, за аналогією з класом кодів операцій 4хх.
Примітки Редагувати
- SebWeo.
- The HTTP status codes in IIS 7.0. Microsoft. 14 липня 2009. Процитовано April 1, 2009.
- . http://docs.cpanel.net. cPanel. Архів оригіналу за 1 липня 2014. Процитовано 29 червня 2014.
Посилання Редагувати
- Hypertext Transfer Protocol (HTTP) Status Code Registry (англ.) — список з посиланнями на RFC.