Я пытаюсь создать веб-сервер с помощью node.js (просто как учебный проект, не для использования в производстве, я знаю expressjs), и я не уверен, что делать в случае, который я упоминал в заглавие?
Я пытался найти код HTTP, чтобы указать на эту ошибку (4XX?), Но похоже, что ее нет? Как на это реагируют производственные серверы?
Если я спрашиваю сервер, на котором размещен google.com, для asdasdas.com, он отвечает 404, но некоторые другие серверы просто перенаправляют вас на домен, который они размещают, поэтому я действительно не слишком уверен, какой вариант мне следует реализовать!
Большое спасибо! :)
Я не думаю, что для этой конкретной цели существует какой-либо код статуса. Я согласен с тем, что коды 4xx были бы наиболее очевидным местом для поиска такого кода состояния.
Клиенты не должны создавать такие запросы, поэтому мне кажется подходящим класс кодов состояния 4xx. Большинство запросов, соответствующих описанным вами критериям, генерируются ботами, часто с намерением отправить URL-адреса спама в ваши файлы журналов через заголовок referer.
И код состояния 404, и перенаправление кажутся разумными вариантами.
Одним из аргументов в пользу перенаправления является то, что в случае, если законный пользователь в конечном итоге сгенерирует один из этих запросов, вы все равно хотите, чтобы он посетил ваш сайт. Точно так же и для законных поисковых роботов вы обычно хотите, чтобы они нашли ваш сайт.
Одним из аргументов в пользу 404 является то, что это может уменьшить трафик, который вы получаете от злоумышленников, и затруднит злоумышленникам поиск вашего реального домена.
Самое близкое совпадение, которое я смог найти в официальный список кодов статуса - это код состояния 421, представленный в HTTP / 2.0.
Код состояния 421 предназначен для случаев, когда соединение повторно используется для нескольких запросов, но когда более поздние запросы не могут обслуживаться одним и тем же сервером, и клиент должен повторить попытку с новым соединением.
Это может быть актуально, например, если несколько доменов разрешаются на один и тот же IP-адрес, но серверная инфраструктура проксирует входящие соединения на разные серверы в зависимости от имени хоста. Это не совсем то же самое, что и ваш сценарий, поэтому я бы не советовал вам использовать 421 для вашего сценария.