Возвращение перенаправления на страницу с сообщением об ошибке неверно. Вы говорите клиенту, что страница существует, по другому адресу, а затем говорите, что этого не произошло. Или, что еще хуже, и очень часто ваша страница с ошибкой возвращается в виде ответа 200 OK, поэтому вы утверждаете, что страница существует, когда ее нет.
Это замедляет работу браузеров, вынуждает их делать лишние совершенно ненужные запросы и может запутать автоматизированные инструменты. Это также означает, что если впоследствии вы поместите файл по адресу a/bogus/url
, пользователь не сможет нажать «перезагрузить», чтобы получить его, так как он окажется по адресу, который только когда-либо показывает ошибку. Это также может плохо работать с кешами, так как ответ на перенаправление может быть кеширован.
Хотя случай с 404-й не так плох, как не менее распространенная ошибка перенаправления всех ошибок на стороне сервера (500) на отдельный адрес страницы с ошибкой.
Использование перенаправлений вместо простого возврата другой страницы в ответ, как правило, является артефактом серверных языков сценариев, которые привязывают входящий URL-адрес к представлению, например .asp (*). Google не использует платформу, которая требует, чтобы они указали, какое представление будет возвращено в URL, поэтому им не нужно создавать редирект. Они могут сделать это более эффективным и правильным способом.
(*: хотя даже в ASP [.NET] вы можете использовать Server.Transfer для перехода на другую страницу без перенаправления. К сожалению, среди ASP-кодировщиков это не такая распространенная практика; есть культурные предпочтения - я бы сказал, называть это болезнью - для перенаправлений, которые часто заканчиваются тем, что вызывают ужасные петли перенаправления и устраняют проблемы.)
Как тогда я должен знать, когда кто-то видел страницу 404?
Любой приличный веб-анализатор логов позволит вам осуществлять поиск по HTTP-ответу. Фактически, таким образом вы получите более точные результаты, и в каждом случае вам будет дана точная неверная ссылка, чего не произойдет при перенаправлении.
почему перенаправление не является обычной практикой.
Это - это обычная практика. Это обычная неправильная практика, которую следует избегать.