您好,匿名用户
随意问技术百科期待您的加入

对于一个网站来说什么叫内域什么叫外域

0 投票

有一个网站,包含很多子域名,包含很多其他网站的url
什么样的url算外域,什么样的算内域
比如https://www.google.com.hkhttps://www.google.com 算内域还是外域,mail.google.com呢
所谓的跨域请求,怎么算跨域

用户头像 提问 2013年 9月24日 @ Draven 上等兵 (325 威望)
分享到:

1个回答

+1 投票
 
最佳答案

在解答这个问题之前,首先简单说一下什么叫做域名。
又称网域、网域名称,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)[1]。internet的核心服务DNS(Domain Name System,网域名称系统,有时也简称为域名)提供域名到IP地址的相映射。以方便用户不用去记机器能识别的IP地址。

接下说说域名的划分。
我们所熟悉的com,gov,edu,cn,hk,us,tw等等这些是顶级域名,一般用来分配给特殊机构或者某个国家用于标识。具体信息请参考文献[1]。在顶级域名下,每个Web网站会到各自国家的域名服务提供商那里去申请域名,申请到的域名就是二级域名,例如:google.com,baidu.com,segmentfault.com等等。在二级域名下,一些大的Web网站一般会根据不同的业务或者功能等,使用不同的子域名即三级域名,例如code.google.com,mail.google.com等等。依此类推,再往下就是三级域名,例如:xxx.xxx.xxx.xxx。一般使用的比较少。说到这,我想你已经可以分辨域名等级了。对于一个url,去掉协议头(例如http://,https://),相对路径(例如/xxx.htm,/xxx/xxx.htm?a=xxx),剩下的部分,看有几个'.',有n个,就是n级域名,没有就是顶级域名。

说了一大堆,进入正题。
內域、外域、跨域都是有一个参照物的概念,必须以某个URL为基准,其他的URL对于其而言是属于內域还是外域。对于同一级域名下的所有URL,都属于一个域。
如以mail.google.com/abc/xxx.htm为基准。
內域:mail.google.com/def/xxx.htm与其属于同一个域,故可以认为是內域。
外域:google.com/abc/xxx.htm与其的域名级别不同,不属于同一个域故可认为是外域。
跨域:跨域更多是用来标识某个跳转的动作。如从一个域下面(mail.google.com/abc/xxx.htm)跳转到另一个域下面(google.com/abc/xxx.htm),就可以认为是跨域。所以外域标识的两个URL之间的跳转,就是跨域跳转。

由于浏览器在访问Web网站的时候会与Web服务器建立Seesion(这个做Web开发的应该很清楚了吧,如不太清楚请自行google之),session在浏览器端的保存是通过一个seesionid来维护,而seesionid的作用域是与域名绑定的,不同域名的session是不同的。所以导致了不同域名下的Web站点需要共享某些信息(例如用户的登录信息等)时,就有跨域的问题。通常这是跨域导致的主要问题之一,比较好的解决方案就是SSO。对于跨域还有很多前端的问题:例如JS不能跨域调用等等,由于本人对前端不是十分了解,就不做表述了。下面是几个简单的跨域例子:
1、一级域名不同:google.com与baidu.com
2、一级域名相同,二级域名不同:mail.google.com与code.google.com
3、依此类推,n级域名相同,n+1级域名不同...
除了这些之外,一般有些人所说的跨域往往还包括:
4、域名相同,端口不同:xxx.com:80与xxx.com:8080
5、域名相同,协议不同:http://xxx.com与https://xxx.com
6、IP与域名的混合:http://127.0.0.1/和 http://localhost/
其实严格意义上来讲,个人觉得下面3中不应该归类到跨域范畴。
(ps: 答案可能有不完整和错误,欢迎指正^_^)

参考文献:
[1] http://zh.wikipedia.org/wiki/%E5%9F%9...

用户头像 回复 2013年 9月24日 @ Olaf 上等兵 (366 威望)
选中 2013年 9月7日 @Draven
提一个问题:

相关问题

+1 投票
1 回复 53 阅读
用户头像 提问 2012年 12月7日 @ Saber 中士 (1,234 威望)
+1 投票
1 回复 36 阅读
+1 投票
1 回复 36 阅读
用户头像 提问 2012年 12月1日 @ Riven 上等兵 (334 威望)
0 投票
1 回复 75 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...