我的浏览器如何将我的http请求转换为https?

我的浏览器如何将我的http请求转换为https?,http,redirect,https,Http,Redirect,Https,我想知道的朋友,当安全托管完成时,我们需要一个唯一的ip地址来将SSL证书与之关联。另外,我在一个教程中读到,当浏览器请求安全连接时,所有SSL进程都会启动。但是浏览器如何请求安全连接呢。我们不是写www.chase.com吗?然后我们的浏览器将http转换为https?后台发生了什么?在编程代码中,使用(服务器端)评估协议并重定向这不是在浏览器中完成的 您可以在ASP.NET中的Global.asax文件中执行此操作 我不确定其他编程语言(PHP、Ruby等)。其他人可以随意插话,如果他们愿意

我想知道的朋友,当安全托管完成时,我们需要一个唯一的ip地址来将SSL证书与之关联。另外,我在一个教程中读到,当浏览器请求安全连接时,所有SSL进程都会启动。但是浏览器如何请求安全连接呢。我们不是写www.chase.com吗?然后我们的浏览器将http转换为https?后台发生了什么?

在编程代码中,使用(服务器端)评估协议并重定向这不是在浏览器中完成的

您可以在ASP.NET中的
Global.asax
文件中执行此操作
我不确定其他编程语言(PHP、Ruby等)。其他人可以随意插话,如果他们愿意,可以用更多的例子编辑我的答案

我认为默认情况下,您可以使用.htaccess在Apache中执行此操作,但据我所知,如果您想在IIS中执行此操作,则需要运行asp脚本或将其包含在.net应用程序中。我可能是错的,但这正是我在这方面的尝试中遇到的问题。

逐步(假设HSTS头未处于活动状态,它将自动使用https,而无需发出http请求):

  • 客户端在地址栏中键入www.example.com
  • 浏览器采用HTTP协议,并向www.example.com发送GET调用
  • www.example.com以移动的状态代码响应,并给出新位置:

    HTTP/1.1 301永久移动
    位置:https://www.example.com/

  • 浏览器读取该信息并知道它必须启动安全的HTTPS连接

  • ……等等。这是事情变得更加复杂的地方,因为浏览器和服务器在建立安全连接之前交换多条消息

  • 无论如何,如果您需要安装SSL/TLS证书,则必须确保您的客户端从HTTP重定向到HTTPS。这应该通过服务器配置来完成。

    http://www.chase.com
    重定向到
    https://www.chase.com
    。我猜它是一个(HTTP状态代码301)。重定向消息来自服务器,而不是浏览器。蹩脚的英语不是结束问题的理由。通读答案和评论,以更清楚地了解他在寻找什么。好答案。。。我试图给出“编程”的答案,以避免这个问题被关闭…;-)你的意思是我应该首先检查响应代码,然后如果是301,那么我应该重定向。你可以用任何这样的语言来做。您也可以在大多数Web服务器的配置设置中执行此操作,而无需进行任何编程。@vinayvasyani,301是一个重定向。如果您将301发送到浏览器,它将转到另一个URI。看看RFC2616,除非你试图构建一个浏览器,否则你不应该阅读301状态代码。你是对的,这只是一个选择。不,您在评估协议时不检查301(
    如果不是https-则发送301并包含https URL
    if(!Request.IsSecureConnection)
    {
      string redirectUrl = Request.Url.ToString().Replace("http:", "https:");
      HttpContext.Current.Response.Status = "301 Moved Permanently"; 
      HttpContext.Current.Response.AddHeader("Location", redirectUrl);
    }