https检测 - 这两种方法的优缺点

Der*_*air 1 html php https http

我希望对我在页面中链接的资源进行"智能"检测https/http.基本上如果页面需要有效的ssl,我只能放入httpshref.

选项1(使用PHP)

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

选项2(使用 // 而不是 http:// OR https://)

<script type="text/javascript" src="//myUri.com/script.js"></script>
Run Code Online (Sandbox Code Playgroud)

选项3 https 用于一切
有什么理由我不应该只使用https做一切吗?

Mic*_*ski 5

协议相对//是最直观的处理方式.但是,我不确定它是否受到旧版浏览器的普遍支持.

<script type="text/javascript" src="//myUri.com/script.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是在PHP中,您不应该检查$_SERVER["SERVER_PORT"] == "80",因为您可能在某些时候需要在开发中的80/443以外的端口上运行Web服务器.相反,检查HTTPS服务器变量的内容:

if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {}
Run Code Online (Sandbox Code Playgroud)