Когда пользователь попадает на мой сервер только SSL / TLS на порту 80, следует ли мне рекламировать Upgrade Required (426)
или перенаправить с помощью Moved Permanently (301)
?
Каковы недостатки и преимущества каждого подхода?
Насколько я могу судить, все современные браузеры поддерживают обновления TLS. Однако я вижу, что w3m
, lynx
и т. д., не надо; тоже curl
, wget
, и различные роботы.
Это выглядит как 426 следует выдавать только в том случае, если вы на самом деле пытались согласовать TLS, но это не удалось. Поскольку пользователь использовал только HTTP, мы еще не знаем его возможностей SSL, поэтому вам нужно 301 использовать HTTPS, а затем, если они не могут обрабатывать TLS, вы бросаете 426.