Зачем использовать URL-адреса, относящиеся к протоколу?

Это был часто обсуждаемый вопрос о StackOverflow, что это означает:

 <script src="//cdn.example.com/somewhere/something.js"></script>

Это дает преимущество в том, что если вы обращаетесь к нему через HTTPS, вы получаете HTTPS автоматически, вместо этого страшного предупреждения "Небезопасные элементы на этой странице".

Но зачем использовать URL-адреса, относящиеся к протоколу? Почему бы просто не использовать HTTPS всегда в URL-адресах CDN? В конце концов, на странице HTTP нет причин жаловаться, если вы решите загрузить некоторые ее части через HTTPS.

(Это более конкретно для CDN, почти у всех CDN есть возможность HTTPS. В то время как ваш собственный сервер может не иметь HTTPS.)

Ответы

Ответ 1

По состоянию на декабрь 2014 года блог Paul Irish по относительным URL-адресам протокола говорит:

2014.12.17: теперь, когда SSL поощряется для всех и не имеет проблем с производительностью, этот метод теперь является анти-шаблоном. Если необходимый вам ресурс доступен по протоколу SSL, то всегда использует ресурс https://.

Если у вас нет особых проблем с производительностью (например, медленная мобильная сеть, упомянутая в ответе Zakjan), вы должны использовать https:// для защиты своих пользователей.

Ответ 2

Из-за производительности. Установление соединения HTTPS занимает гораздо больше времени, чем HTTP, квитирование TLS добавляет задержку задержки до 2 RTT. Вы можете заметить это в мобильных сетях. Поэтому лучше не использовать URL-адреса активов HTTPS, если вам это не нужно.