Обнаружение https - плюсы / минусы этих двух методов - PullRequest
1 голос
/ 22 августа 2011

Я хотел бы иметь «интеллектуальное» обнаружение https / http для ресурсов, на которые я ссылаюсь на своих страницах. В основном, если странице требуется действительный ssl, я могу только поставить https href's.

вариант 1 (с использованием PHP)

<?php
if ( $_SERVER["SERVER_PORT"] == "80" ) {
    $http = "http";
} else {
    $http = "https";
}
?>
<script type="text/javascript" src="<?=$http?>://myUri.com/script.js"></script>

Вариант 2 (с использованием // вместо http:// ИЛИ https://)

<script type="text/javascript" src="//myUri.com/script.js"></script>

Вариант 3 использовать https для всего
Есть ли причина, по которой я не должен просто использовать https для всего?

Ответы [ 2 ]

5 голосов
/ 22 августа 2011

Относительно протокола // - наиболее интуитивный способ справиться с этим. Однако я не уверен, что он поддерживается всеми более старыми браузерами.

<script type="text/javascript" src="//myUri.com/script.js"></script>

В PHP, однако, вы не должны проверять $_SERVER["SERVER_PORT"] == "80", так как в какой-то момент вам может потребоваться запустить ваш веб-сервер через порт, отличный от 80/443, например, в разработке. Вместо этого проверьте содержимое серверной переменной HTTPS:

if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {}
1 голос
/ 22 августа 2011

Вариант 1: это не надежно.Маловероятно, что кто-то будет использовать SSL через порт 80, но это возможно.

Вариант 2. Это надежный, простой и безопасный.Используйте его.

Вариант 3: Если вы используете SSL для всех своих сценариев, но не для страниц, вы получите оповещения о смешанном содержимом.Обслуживание всего содержимого через SSL будет влиять на кэширование и производительность (но, как правило, это хорошая идея для любой части сайта, для которой требуется вход пользователя).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...