Коди HTTP запитів (http headers)
Створюючи web сайти ви завжди будете стикатися з кодами HTTP (S) відповіді від веб сервера.Веб сервер повертає заголовок (header) c кодом відповіді, який показує успішність виконання запиту.
Розшифровка всіх http заголовків web сервера
1xx - інформаційні
100 ContinueHTTP/1.1
«Продовжуй» - сервер прийняв запит, клієнт може продовжувати надсилати заголовки.
101 Switching ProtocolsHTTP/1.1
«Перемикання протоколів» - сервер пропонує перейти на інший протокол, список протоколів сервер вказує в заголовкуUpgrade
.
2xx - успішні запити
200 OKHTTP/1.0
«Успішний запит» - якщо клієнтом були запитані будь-які дані, то вони знаходяться в заголовках і / або тілі відповіді.
201 CreatedHTTP/1.0
«Створено» - в результаті успішного запиту був створений новий ресурс.Сервер може вказати адреси створених ресурсів в тілі відповіді, при цьому кращий адреса вказується в заголовкуLocation
.
202 AcceptedHTTP/1.0
«Прийнято» - запит був прийнятий, але ще не оброблений.
203 Non-Authoritative InformationHTTP/1.1
«Інформація не авторитетна» - успішний запит, але передана інформація може бути неактуальною.
204 No ContentHTTP/1.0
«Немає вмісту» - сервер успішно обробив запит, але у відповіді були передані тільки заголовки.
205 Reset ContentHTTP/1.1
«Скинути вміст» - сервер зобов'язує зменшити введені користувачем дані.
206 Partial ContentHTTP/1.1
«Часткове вміст» - сервер вдало виконав частковий GET-запит, повернувши тільки частина повідомлення.У заголовкуContent-Range
сервер вказує байтові діапазони вмісту.
3xx - перенаправлення
300 Multiple ChoicesHTTP/1.0
«Безліч виборів» - за запитом існує кілька варіантів ресурсу (по MIME, мови і т.д.).Сервер передає список альтернатив, даючи клієнтові можливість зробити вибір.
301 Moved PermanentlyHTTP/1.0
«Ресурс переміщений назавжди» - документ був остаточно перенесений на новий URI, зазначений в заголовкуLocation
.
301-й редирект в PHP
1
2
3
|
header( 'Location:https://exsample.com' , true, 301); exit (); |
302 FoundHTTP/1.0
«Переміщено тимчасово» - запитаний документ тимчасово доступний по іншому URI, винесеному в заголовокLocation
.
303 See OtherHTTP/1.1
«Дивитися інше» - сервер повідомляє що документ потрібно запросити за адресою переданому в заголовкуLocation
з використанням GET-методу.
Використовується для перенаправлення після відправки форми методом POST (метод Post / Redirect / Get).
304 Not ModifiedHTTP/1.0
«Не змінювалося» - сервер повертає такий код, якщо клієнт запросив документ методом GET, використовував заголовокIf-Modified-Since
абоIf-None-Match
і документ не змінився з зазначеного моменту.При цьому повідомлення сервера не повинно містити тіла.Детальніше про заголовкахLast-Modified.
305 Use ProxyHTTP/1.1
«Використовувати проксі» - запит до запитуваного ресурсу повинен здійснюватися через проксі-сервер, URI якого вказано вLocation
.
307 Temporary RedirectHTTP/1.1
«Тимчасове перенаправлення» - ресурс, що запитується на короткий час доступний по іншому URI, зазначений в заголовкуLocation
.Метод запиту (GET / POST) міняти не дозволяється.
308 Permanent RedirectHTTP/1.1
«Постійне перенаправлення» - ресурс був остаточно перенесений на новий URI, зазначений вLocation
.Метод запиту (GET / POST) міняти не дозволяється.
4xx - помилки клієнта
400 Bad RequestHTTP/1.0
«Невірний запит» - запит не може бути зрозумілий сервером через некоректне синтаксису.
401 UnauthorizedHTTP/1.1
«Неавторизований запит» - для доступу необхідно ввести логін і пароль.
402 Payment RequiredHTTP/1.1
«Необхідна оплата за запит» - зараз не використовується.Цей код передбачений для платних призначених для користувача сервісів.
403 ForbiddenHTTP/1.0
«Доступ до ресурсу заборонено» - сервер зрозумів запит, але він відмовляється його виконувати через обмеження в доступі для клієнта до зазначеного ресурсу.
404 Not FoundHTTP/1.0
«Ресурс не найден» - документ не існує.
Відправлення 404-го коду в PHP
1
2
|
header( 'HTTP/1.0 404 Not Found' ); |
405 Method Not AllowedHTTP/1.1
"Неприпустимий метод» - вказаний клієнтом метод не можна застосувати до поточного ресурсу.У відповіді сервер повинен вказати доступні методи в заголовкуAllow
, розділивши їх комою.
406 Not AcceptableHTTP/1.1
«Неприйнятна запит» - потрібний документ існує, але не в тому форматі (мова або кодування).
407 Proxy Authentication RequiredHTTP/1.1
«Потрібно ідентифікація проксі» - відповідь аналогічний коду 401 за винятком того, що аутентифікація проводиться для проксі-сервера.
408 Request TimeoutHTTP/1.1
«Час запиту минув» - покупець не передав повний запит протягом встановленого часу і сервер розірвав з'єднання.
409 ConflictHTTP/1.1
«Конфлікт» - запит конфліктує з іншим запитом або з конфігурацією сервера.Наприклад, таке можливо коли два клієнта намагаються змінити ресурс за допомогою методу PUT.
410 GoneHTTP/1.1
«Недоступний» - таку відповідь сервер посилає, якщо ресурс раніше був за вказаною URL, але був остаточно видалений з сайту.Якщо документ найближчим часом може бути відновлений, то краще передати 404-й код.
411 Length RequiredHTTP/1.1
«Необхідно вказати довжину» - сервер відмовляється приймати запит без заголовкаContent-Length
.Така відповідь природний для запитів типу POST і PUT.
412 Precondition FailedHTTP/1.1
«Умова хибно» - при перевірці на сервері одного або більше заголовків виявлено невідповідність.
413 Payload Too LargeHTTP/1.1
«Тіло запиту перевищує допустимий розмір» - сервер відмовляється обробляти запит через занадто великого розміру тіла.
414 URI Too LongHTTP/1.1
«Неприпустима довжина URI запиту» - сервер не зрозумiв запит через занадто довгого URI.
415 Unsupported Media TypeHTTP/1.1
«Непідтримуваний MIME» - сервер відмовляється працювати з вказаним типом даних.
416 Range Not SatisfiableHTTP/1.1
«Діапазон не може бути оброблений» - в заголовкуRange
було вказано неприпустимий діапазон байтів.
417 Expectation FailedHTTP/1.1
«Збій при очікуванні» - сервер відмовляється обробляти запит, тому що значення заголовкаExpect
не відповідає очікуванням.
426 Upgrade Required
«Потрібно оновлення» - сервер відмовляється виконувати запит з використанням поточного протоколу.Введено в для можливості переходу до TLS.
5xx - помилки сервера
500 Internal Server ErrorHTTP/1.0
Внутрішня помилка сервера.Зазвичай виникає через помилки у файлі .htaccess або критичної помилки PHP при відключеному показі помилок.
Включити показ помилок PHP
1
2
3
|
error_reporting (E_ALL); ini_set ( 'display_errors' , 1); |
501 Not ImplementedHTTP/1.0
«Не реалізовано» - сервер не має можливостей для обробки запиту.
502 Bad GatewayHTTP/1.0
«Поганий, помилковий шлюз» - сервер, виступаючи в ролі шлюзу або проксі-сервера, отримав недійсне відповідь було надіслане від висхідного сервера.
503 Service UnavailableHTTP/1.0
«Сервіс недоступний» - сервер тимчасово не може обробляти запити з технічних причин.У заголовкуRetry-After
вказується час, через яке клієнту рекомендується повторити запит.
504 Gateway TimeoutHTTP/1.1
«Шлюз не відповідає» - сервер в ролі проксі-сервера не дочекався відповіді від висхідного сервера.
505 HTTP Version Not SupportedHTTP/1.1
«Версія HTTP не підтримується» - сервер не підтримує запропоновану версію протоколу HTTP.