udacity.com
当我在网络浏览器中输入时,它会自动加载https://in.udacity.com
这是如何运作的?
是否udacity.com机器将所有来自印度 IP 的请求重定向到in.udacity.com使用HTTP REDIRECT 301
?
答案1
Udacity 使用 Cloudflare 作为其实际服务器的代理。任何请求都https://www.udacity.com
将首先转到 Cloudflare,然后重定向到适合原点地理位置的域。
检查以下响应:
curl -iv https://www.udacity.com
因此,它是可以识别您所在位置的 IP 地址。Cloudflare提供此项服务— 它会向任何请求添加地理位置标头,然后 Udacity 服务器使用该标头来确定将您重定向到哪个域。
这种确定位置的方法并不总是准确的,并且可能会导致误报,特别是如果您使用的是 VPN 提供商。此外,根据您查找地理位置的方式,这种方法相当慢。像 Cloudflare 这样的提供商可以相对较快地完成此操作,因为它们处理大量请求并可以缓存信息,因此它不会增加请求时间。对于您的小型企业网站,我不建议使用 IP 来确定用户的位置。
顺便说一句,重定向不是永久的,因为您可能会更改国家/地区。因此,总是重定向到特定子域。相反,它使用302 Found
指示,这是暂时的。
根据用户位置重定向用户的另一种方法是检查Accept-Language
标题浏览器的语言环境,用于指定客户端语言环境。例如,语言环境可能是fr-CH
,表示您更喜欢法语,但语言环境为瑞士(瑞士人说法语,但与法国人说的法语略有不同,因此需要区分)。然而,这也并不总是可靠的——我将所有软件都设置为美式英语,这经常会让网站认为我身在美国。在这种情况下,基于地理位置的方法会更可靠。
答案2
您的浏览器发送给服务器的请求中有一个名为“Accept-Language”的 HTTP 标头,它告诉您您喜欢的语言,并且无论您的 IP 地址是什么,该信息都可以在服务器上使用,将您重定向到适当的站点。
根据您的 IP 地址(使用地理位置数据库)确定您的位置可能是另一种解决方案,但是这些数据库通常不是 100% 准确的。