DNS显性URL、隐性URL转发原理

需求

通过DNS的解析,访问heytool.com时跳转到www.heytool.com

标准的DNS协议中并无显性URL、隐性URL类型的记录

显性URL测试

添加显性URL记录:heytool.com

  • 查看DNS解析情况

    dig解析上面的显性记录,发现被cname到了dnspod-free.mydnspod.net,他对应的两个IP是54.248.82.230,54.248.143.107

  • 访问测试

# curl -I http://heytool.com
HTTP/1.1 301 Moved Permanently # 301重定向
Date: Tue, 27 Aug 2013 08:24:21 GMT 
Cache-Control: max-age=120
Expires: Tue, 27 Aug 2013 08:26:21 GMT
Server: DNSPod URL V2.0 # DNSPod的服务器
Location: http://www.heytool.com # 跳转到www.heytool.com
Content-Length: 0
Connection: close

隐性URL测试

iframe html示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        /* 将根元素占满浏览器 */
        html, body {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
        }

        iframe {
            margin: 0 auto;
            display: block;
            width: 100%;
            height: 100%;
            border: 0;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            var iframeEle = document.getElementsByTagName("iframe");
            // iframe使用子页面的title
            iframeEle.contentWindow.document.title;
        }
    </script>
</head>
<body>
<iframe src="https://www.baidu.com" allowfullscreen="true" allow="microphone; camera"></iframe>
</body>
</html>

显性/隐性URL原理总结

  1. 域名管理员显性/隐性URL解析,有些DNS服务商的显性URL记录还可以选择响应状态码(可选302/301),记录值为目标URL(http://www.heytool.com
  2. dns提供商将显性/隐性URL记录用(heytool.com),在创建相应的cname记录解析到他们的服务器上(一般控制台上不显式这些对应的cname记录),并且这台服务器上配置了虚拟主机(heytool.com)
  3. 服务商服务器上的虚拟主机配置
    • 显性URL跳转:配置302URL重写,或是301URL重写
    • 隐性URL转发:站点里面的index.html面加上iframe,iframe的src值为隐性URL记录的值。在里面嵌套页面,所以不管你怎么点链接,url地址栏都不会变化.除非你的连接是打开新页面
  4. 显性URL的本质是,创建了cname记录指向服务商的服务器,此服务器设置了URL重写(跳转)
    隐性URL的本质,创建了cname记录指向服务商的服务器,此服务器返回了一个包含iframe的html页面

posted on 2020-01-20 14:42  林肯公园  阅读(8382)  评论(0编辑  收藏  举报

导航