【问题标题】:How does it work under the table if I put google.com on the browser?如果我将 google.com 放在浏览器上,它如何在桌面下工作?
【发布时间】:2018-09-17 00:31:37
【问题描述】:

这不是“如果我在浏览器上输入 URL 会发生什么”之类的问题。 我的意思是,具体来说,如果我在浏览器上输入 www.google.com 或 google.com 或 https://google.comhttp://google.com,则 URL 将自动更改为 https://www.google.com 并加载 html 内容。是什么原因?

【问题讨论】:

  • 老兄!这不是 DNS,而是google.com 中的程序,当请求时,确保它转到正确的 URL:google.com。这是规范的。
  • 老板不客气。 :D

标签: html url dns


【解决方案1】:

有一些 URL 称为规范 URL。很明显,为什么一个网站在 Google 中应该是consolidating duplicate URLs。所以,出于同样的原因,Web 应用程序会这样写,比如说,拿我的网站:https://praveen.science/,我个人是这样编码的:

<?php
  if ((isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" != "https://praveen.science/") {
    header("Location: https://praveen.science/");
    die();
  }
?>

无论您输入什么 URL,它总是指向 https://praveen.science/。这就是“幕后”的原因。尝试以下变体:

由于上面的代码,上述所有 URL 都将转到 https://praveen.science/。这是我网站上的实时代码。 不是 DNS,而是单个应用程序路由配置。这有助于搜索引擎和其他地方避免重复 URL。

另一种实现方式是使用.htaccess。 (例如:htaccess, Redirect all requests to https://www(关于堆栈溢出的随机问题)。

这对于让您的用户或请求一致地路由到一个 URL 非常重要。您可以在此处阅读有关为什么在许多网站中实施此功能的原因:

回答您的问题的另一种方法是检查请求数据。当您向https://www.google.com/ 以外的任何 URL 发出请求时,响应将是 HTTP 301 Moved Permanently:

这是将所有请求路由到一个域(或路径)并确保没有重复的一种方法。

【讨论】:

  • 除了连接到某些资源后发生的 HTTP 重定向之外,还可以查看 HTTP 严格传输安全性,它可以使浏览器自动执行 HTTPS 查询而不是 HTTP 查询。一些浏览器也预加载了各种网站,见hstspreload.orghstspreload.com
  • @PatrickMevzek 是的。这也有效! :) 感谢您的补充。
猜你喜欢
  • 2014-06-26
  • 2019-02-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2016-09-16
  • 1970-01-01
  • 2017-11-17
  • 2022-08-03
相关资源
最近更新 更多