У меня возникли проблемы с поиском способа создания гиперссылки наhttps://secure.mysite.net:443
Я пытался:<a href="https://secure.mysite.net:443/">HTTPS SSL</a>
Однако это просто переносит меня вhttps://secure.mysite.net(порт 80)
Есть ли способ создания гиперссылок на порты с использованием PHP, Javascript или HTML?
Я искал ответ почти везде :(
решение1
Однако это просто переносит меня вhttps://secure.mysite.net(порт 80)
Вероятно, нет: 443 — это порт по умолчанию для https, поэтому нет необходимости указывать его явно, а некоторые браузеры даже удаляют его из URL (быстрая проверка показывает, что по крайней мере Chrome это делает, а другие, вероятно, тоже.)
Если бы вы были на порту 80 с использованием https, вы бы увидели :80
добавление к URL-адресу.
Вероятно, никаких проблем нет.
решение2
IE, Chrome и Firefox ведут себя примерно одинаково, когда дело касается анализа URI.
Если указать, href="https://secure.site.com:443"
большинство браузеров будут анализировать это в DOM как https://secure.site.com"
. 443
Часть удаляется, поскольку она избыточна и поскольку порт по умолчанию для https
уже и всегда 443
.
Если вы выполните просмотр исходного кода, то увидите, что было отправлено в браузер, и оно https://secure.site.com:443
останется нетронутым, однако если вы проверите DOM, то увидите, что это анализируется из:
https://secure.site.com:443
К:
https://secure.site.com
Однако если вы укажете порт, отличный от 443
объединенного с https
, например:
https://secure.site.com:409
Тогда порт останется нетронутым и останется частью URL в активном DOM.
Вы не можете указать http://secure.site.com:443
, ну вы можете, но это не будет работать, если это конечная точка SSL/TLS. Этому есть несколько причин.
https
сигнализирует браузеру, что он должен задействовать SSL/TLS и зашифровать запрос перед отправкой на сервер. Указаниеhttps
— единственный способ сделать это.Совершенно законно указать
http://secure.site.com:443
или любой другой порт, если на то пошло. Однако, если вы ожидаете подключения с использованием TLS/SSL, указавhttp://secure.site.com:443
вместоhttps://secure.site.com:443
, то ничего не произойдет. Порт сам по себе не включает SSL/TLS, и когда сервер получает запрос, он просто отключается, вам нужно указать,https
чтобы сообщить браузеру, что ему нужно использовать SSL/TLS.
Если ваш сервер настроен в соответствии с обычными соглашениями, то есть сервер прослушивает порт 80
для незащищенного трафика и прослушивает порт 443
для трафика SSL/TLS, то нет никакой необходимости указывать и то, и https
то 443
в ваших URL. Браузер уже знает, что это https
означает "использовать порт 443
" (если только вы не указали что-то нестандартное, например 10443
, в этом случае он сохранит этот номер порта как часть URL в DOM).
Когда ты говоришь:
Я пытался:
<a href="https://secure.mysite.net:443/">HTTPS SSL</a>
Однако это просто переносит меня вhttps://secure.mysite.net(порт 80)
Да, это приведет вас к https://secure.mysite.net
, однако это не порт 80, это порт 443
,https
означает порт 443.