День Святого Валентина уже завтра. Для некоторых это время романтических надежд, время, чтобы спросить «даму сердца» и получить ответ. Это может быть просто «да», грустное «нет» или загадочное «Я не думала о нас, как о паре, но, может быть, завтра мы сможем поужинать вместе?»

Это, хотя и косвенно, приводит нас к кодам статуса HTTP (Hypertext Transfer Protocol). Когда URL-адрес вводится в браузере, запрос отправляется на сервер. Как и в нашем сценарии, браузер ожидает ответа. Эти ответы поступают в виде HTTP-кода, который представляет собой трехзначное число, которое сопоставляется с определенным смыслом.

Вот несколько вероятных сценариев в виде комиксов ко Дню Святого Валентина.

200s: Успех


Коды 200-го класса обычно означают, что все в порядке. Запрос был получен, понят, и на сервере не было ошибок. Например, этот URL-адрес вернет код 200 OK — успешный запрос.

Идеальное завершение для пар «браузер + сервер» и «разработчик + его проект»

300s: Перенаправление


Коды 300-го класса означают, что клиент должен предпринять дальнейшие действия для завершения запроса. В 300-ых также находятся все переадресации.

Человек, вероятно, никогда не увидит 300-ых кодов, поскольку браузер без пользователя должен предпринять необходимые действия. Однако, поисковые системы серьезно относятся к этим 300-ым кодам, поэтому разработчикам следует позаботиться о выборе правильного кода.





Существует тонкое, но важное различие между 302, 303 и 307, которое не очень хорошо отражено в комиксе.

Вкратце, смысл состоит в том, что, когда 302 код был впервые создан, он был неправильно реализован популярными браузерами. Чтобы устранить неоднозначность между верным 302 и неверным 302, были созданы коды 303 и 307.


Этот комикс плохо иллюстрирует преимущества 304-го, поскольку для человека «да» намного короче, чем «мой ответ не изменился».

304 полезен для браузеров, потому что он сигнализирует, что ресурс может быть загружен из кэша, вместо того, чтобы заново загружать его с сервера.

400s: ошибка клиента


Класс кодов 4xx обычно указывает на проблему с запросом. Это может быть проблема с браузером или используемым URL.









404 — это, возможно, самая распространенная ошибка. Хотя многие понимают её значение, как «этот ресурс не существует», и «этот ресурс удален», 404 фактически не указывает, существовал ли ресурс или будет ли он когда-либо возвращен.






В отличие от знаменитого 404, 410 — это случай, когда ресурс существовал, но был удален навсегда и его возврат не ожидается. Если вы удалили страницу с вашего сайта на постоянной основе, следует использовать 410, а не 404.



500s: ошибка сервера











Эпилог


Наконец, самый забавный код статуса — это отсылка на первоапрельскую шутку далекого 1998 года, которая до сих пор жива.



Hyper Text Coffee Pot Control Protocol (HTCPCP, гипертекстовый протокол управления кофеваркой) — протокол для управления, слежения и диагностики приборов для приготовления кофе. Запросы HTCPCP определяются с помощью схемы URI coffee: и содержат несколько добавлений к HTTP-запросам. 418 «I’m a teapot» (Ошибка 418: Я — чайник) — возвращается при попытке приготовить кофе с помощью чайника.

Надеемся, что просмотр этих комиксов сделал HTTP-коды более интересными. Дополнительные и более серьёзные пояснения по поводу этих кодов вы сможете найти по ссылкам ниже.

Ссылки по теме:

HTTP response status codes
HTTP Status Codes for Beginners | Added Bytes
Простым языком об HTTP

Комментарии (17)


  1. KitScribe
    13.02.2018 19:49

    Очень забавно и познавательно. Спасибо


  1. KodyWiremane
    13.02.2018 19:50
    +1

    Код 451 не раскрыт )


    1. napa3um
      13.02.2018 21:38

      И 402.


  1. MRomaV
    13.02.2018 20:07
    +2

    image


  1. lxsmkv
    13.02.2018 21:40

    (Сам имею к топику немного отдаленное отношение, прошу не судить за признание собственной малообразованности.)
    Сегодня на работе случайно в разговоре узнал, что статус коды не предназначены для передачи информационной нагрузки. Они только для сообщения состояния протокола, а не приложения. Т.е если сервер говорит 200, это не значит ничего кроме того что он принял запрос. Передавать статус кодом информацию нарушает назначение протокола, например:
    — У тебя есть сестра?
    — 200 (как-бы, «да»)
    Получается, представленные картинки искажают значение статус кодов, и предназначение протокола.
    Но сама задумка и исполнение очень милые.


    1. ZurgInq
      14.02.2018 07:38

      Это проблема rest http, протокол смешался с уровнем приложения.


      1. lxsmkv
        14.02.2018 13:20

        Спасибо, что поправили. Именно в этом контексте и был разговор.


  1. yanghu
    13.02.2018 23:10

    304 полезен не только для браузеров. При запросе if modified since «date» поисковые роботы получают ответ not modified и не обходят страницу, хотя в последнее время они это не особо учитывают. По теме: прикольные иллюстрации, спасибо!


  1. Akuma
    13.02.2018 23:44

    Ошибка 418 вполне реальна с современными чайниками и кофеварками, кстати :)


  1. Lure_of_Chaos
    14.02.2018 07:49

    500 ОЙ ВСЕ


  1. nrcmn
    14.02.2018 09:12

    Ошибки 402 не хватает.


  1. vesper-bot
    14.02.2018 09:42

    Хотел бы посмотреть на 100. «Ну поуговаривай меня!»



  1. Mercury13
    14.02.2018 11:38
    +9


  1. achekalin
    14.02.2018 13:44

    Скоро 23-е, начинайте рисовать!


  1. nizkopal
    14.02.2018 13:49

    Спасибо, улыбнуло. :)


  1. antanariva
    15.02.2018 09:10

    А к масленнице?))