需求
通過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原理總結
- 域名管理員顯性/隱性URL解析,有些DNS服務商的顯性URL記錄還可以選擇響應狀態碼(可選302/301),記錄值為目標URL(http://www.heytool.com)
- dns提供商將顯性/隱性URL記錄用(heytool.com),在創建相應的cname記錄解析到他們的服務器上(一般控制台上不顯式這些對應的cname記錄),並且這台服務器上配置了虛擬主機(heytool.com)
- 服務商服務器上的虛擬主機配置
- 顯性URL跳轉:配置302URL重寫,或是301URL重寫
- 隱性URL轉發:站點里面的index.html面加上iframe,iframe的src值為隱性URL記錄的值。在里面嵌套頁面,所以不管你怎么點鏈接,url地址欄都不會變化.除非你的連接是打開新頁面
- 顯性URL的本質是,創建了cname記錄指向服務商的服務器,此服務器設置了URL重寫(跳轉)
隱性URL的本質,創建了cname記錄指向服務商的服務器,此服務器返回了一個包含iframe的html頁面

