2016-02-08 3 views
0

Есть много вопросов на SO относительно схемы относительного URL, но я не понимаю, что будет происходить в этих сценариях:Схема относительный URL

1) Я на HTTPS, нажав на href="//example.com/" (example.com Безразлично У вас есть SSL (это HTTP), поэтому браузер попытается открыть HTTPS://example.com/ (потому что он хочет соответствовать текущей схеме), и если не будет схемы HTTPS, он откроет HTTP://example.com/?

2) Обратное обращение от HTTP до HTTPS, когда цель //example.com/ - это только HTTPS. Будет ли браузер открывать HTTPS, если целевая цель не имеет HTTP?

+1

Браузер будет использовать ту же схему, что и раньше. Он не будет пытаться использовать другую схему. –

ответ

1

Браузер попытается открыть URL-адрес, используя ту же схему, в которой он сейчас находится; если он в настоящее время находится на HTTPS, он запросит URL-адрес с HTTPS и наоборот для HTTP. Если целевой сервер не поддерживает эту схему, он просто терпит неудачу. В случае сервера, который поддерживает только HTTPS, это обычно означает, что он устанавливает HTTPS; если вы делаете HTTP-запрос на этот сервер, то часто просто перенаправляет на версию HTTPS той же страницы. Однако это полностью зависит от сервера.

Если сервер поддерживает только HTTP, это обычно означает, что он вообще не имеет HTTPS. В этом случае запрос HTTPS просто провалится, и браузер отобразит сообщение об ошибке в строке «не удалось установить безопасное соединение/не может подключиться к серверу».

+0

Спасибо! Теперь мне ясно, что я не должен просто менять все URL-адреса в моем проекте на URL-адрес относительной схемы ... Прежде чем я подумал, что '//' имеет в себе некоторую логику ... и не подведет. Может быть, вы могли бы привести мне пример, когда вы используете (если используете его вообще) относительный URL-адрес схемы в своих проектах? – Edgar

+2

Это хорошая идея для внешних ресурсов, например '// cdn.jquery.com/latest.js', или что-то в этом роде. Пока вы уверены, что внешний ресурс предлагает как HTTP, так и HTTPS-версии, это хорошо. Возможно, вы могли бы просто * всегда использовать версию HTTPS, но ... о хорошо ... (ручная махать) ... избегайте накладных расходов HTTPS, если не нужно ... mumble mumble ... – deceze

Смежные вопросы