Redirect 理解为什么使用普通重定向

Redirect 理解为什么使用普通重定向,redirect,dns,Redirect,Dns,最近,我参加了一个新的课程 在研究DNS系统时,我发现网站倾向于使用重定向将其不同的域名指向主域名 例如,当访问Google.com时,谷歌使用重定向到www.Google.com: > curl -I google.com HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ ... 据我所知,重定向会减慢速度,因为要获取重定向到哪里的信息,需要信号将到web服务器的距离增加一倍,从而增加总体延迟 有人告诉我,

最近,我参加了一个新的课程

在研究DNS系统时,我发现网站倾向于使用重定向将其不同的域名指向主域名

例如,当访问
Google.com
时,谷歌使用重定向到
www.Google.com

> curl -I google.com

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
...
据我所知,重定向会减慢速度,因为要获取重定向到哪里的信息,需要信号将到web服务器的距离增加一倍,从而增加总体延迟

有人告诉我,浏览器会缓存重定向信息,以便下一个
google.com
查询立即被浏览器重定向。但是第一个仍然需要得到服务器关于重定向的响应

在我看来,我们可以在DNS级别实现同样的目标。我知道我们不能有
google.com
的CNAME记录导致
www.google.com
(因为它会将所有电子邮件
user@google.com
进入
user@www.google.com
)。但是我们可以在DNS级别使用重定向。或 最后一步,我们可以使用JavaScript将浏览器地址栏中的url从
google.com
更改为
www.google.com
。 对我来说,这将导致与使用重定向相同的结果,但将避免我们进行重定向,从而更快地为结果页面提供服务

不过,使用普通重定向还是有原因的


那么,这是什么原因呢?使用重定向的优点是什么?DNS级别重定向的注意事项是什么?

使用重定向是因为RFC 1912不允许在DNS区域的顶端使用CNAME记录。一些DNS提供商已经构建了类似“DNS别名”的东西,以便在其DNS边缘机器上使用服务器端重定向来解决查询,301/302重定向只是将HTTP流量分流到另一个FQDN的一种方式。由于使用301/302重定向而导致的延迟可能会因DNS提供商的不同而有所不同。

JavaScript似乎有点不一样

因此,将
google.com
更改为
www.google.com
的唯一方法是重定向

DNS级别的所有重定向和别名都发生在用户DNS服务器端,它将web服务器的最终IP地址返回给用户。浏览器通过HTTP向服务器发送的主机名处于OSI模型的更高级别。web服务器仍然接收原始主机名,在浏览器地址栏中更改它的唯一方法是重定向到新的url