Вижу на некоторых сайтах, которые используют протокол https, ссылку на их сайты не
https://site.ru..#не такие ссылки
//site.ru. #а вот такие
И я так понимаю апач или другая система, сама определяет и перекидывает на нужный протокол.
Вопрос.
Эту "проверку" протокола нужно самому писать, или апач(в моём случае) сам определит, если я буду к себе перекидывать через адресс:
//site.ru
Не Apache Server добавляет протокол, а браузер. На сервер запрос приходит уже с протоколом. На стороне сервера нужно настроить обработку нужных протоколов и все.
Это сугубо фронтендовая вещь, apache (или любой другой веб-сервер тут не при чём). Такая ссылка, без схемы, говорит браузеру что нужно использовать тот-же протокол который он использовал для доступа к странице на которой эта ссылка расположена.
Пример:
На сайте example.org eсть страница some_page.html, в ней есть ссылка <a href='//example.com/another_page.html'>click me</a> (обращаю внимание: другой домен).
Если обратиться к странице по адресу http://example.org/some_page.html то клик по ссылке отправит запрос по http (http://example.com/another_page.html).
Если обратиться к странице по адресу https://example.org/some_page.html то клик по ссылке отправит запрос по https (https://example.com/another_page.html).
Справедливо не только для <a href>, но и для любых других мест где используется url (загрузка изображений, стилей, скриптов etc). Возможно есть редкие исключения, не помню, стоит уточнить.
Смысл такой: незачем загружать дополнительные ресурсы (стили, скрипты, изображения) по https еслиосновная страница всё-равно загружается по http и её содержимое как угодно может модифицировать "человек посередине". С другой стороны не разумно (а зачастую просто невозможно) загружать ресурсы по http на страницу загруженную по https.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей