我明白,如果我希望客户能够使用指向他们在customer.mysaasapp.com的空间的自定义域,他们必须定义一个CNAME记录,该记录为规范的customer.mysaasapp.com域提供别名。
我不明白的是,这个别名是如何跨请求持久存在的。例如,如果客户站点链接到其资源,它如何知道是否链接到customer.mysaasapp.com/videos域而不是customclientdomain.com/videos资源?我不想真正的子域显示在导航栏中,只要一个链接被点击。这是如何处理的?
发布于 2017-03-21 02:35:13
让我试着为你解释一下。正如你已经知道的,CNAME是另一个域名的规范名称。
正如你所知道的,当我们在浏览器地址栏中点击一个域名时。浏览器询问DNS (域名服务器)将请求发送到何处。DNS匹配域名,并将IP地址发送回浏览器,浏览器命中这些IP地址以获得响应。但是当我们想要从同一个IP地址为多个站点提供服务时,就像在SAAS应用程序中一样。我们可以为每个客户端定义CNAME。这是IP映射的替代。
因此,当浏览器向DNS询问所提供的主机url的地址时。DNS返回实际的域名/路径,并告诉浏览器这是要询问的正确地址。
因此,现在浏览器将请求发送到幕后的实际域,并将主机标头设置为用户输入的提供地址。(customclientdomain.com/videos用于您的情况)。
现在,服务器知道哪个主机是由用户提供的,并做出相应的响应。
从下一个请求开始,浏览器就会变魔术,给你一个全新网站的模仿感。
包括WGET、CURL在内的所有现代浏览器都可以处理这个问题。
Here是一个包含更多详细信息的链接。
https://stackoverflow.com/questions/42910259
复制相似问题