踩坑:相同域名不同路径,支持不同的协议

在日常开发中遇到一个问题,我有一个认证中心(https://www.example.com/path1/page1),他的目的是可以单点登录至其他平台,但我认证中心域名使用的是https协议,其中有一个需要单点登录的平台是http协议的(http://www.example.com/path2/page2),正常来说浏览器不会强制转换协议,你从https协议的网站前往http协议的网站不会出现协议的问题。

但是有几台电脑他们跳转时候就发生了错误,深入了解以后发现,他们跳转的时候自动把http协议的网站默认变成https进行访问,我需要前往的是http://www.example.com/path2/page2,但是跳转时候自动变成了https://www.example.com/path2/page2,从而跳转失败,又回到了https://www.example.com/path1/page1。

踩坑:相同域名不同路径,支持不同的协议_第1张图片

最后我们的解决办法是:

将http://www.example.com/path2/page2域名的网站进行域名的更换,变成了http://www.exampleiii.com/path2/page2,这样跳转就不会失败了。

其他方法:

踩坑:相同域名不同路径,支持不同的协议_第2张图片

在网页中使用js

if (location.protocol !== "https:") {
    location.href = "https://" + location.hostname + location.pathname + location.search;
}
 

最后我们来了解一下域名和协议的关系:

踩坑:相同域名不同路径,支持不同的协议_第3张图片

一个域名也是可以支持不同的协议:

踩坑:相同域名不同路径,支持不同的协议_第4张图片

相同域名,不同路径也不会影响其对应的协议,在互联网上,协议是与域名或IP地址相关联的,而路径通常用于指定服务器上特定资源的位置。一般来说,无论访问域名下的哪个路径,所使用的协议(例如HTTP或HTTPS)都是由服务器配置决定的。

例如,考虑以下两个URL:

  1. http://www.example.com/path1/page1
  2. https://www.example.com/path2/page2

在这两个URL中,域名是相同的(www.example.com),但路径不同(/path1/page1和/path2/page2)。服务器会根据域名(www.example.com)的配置来确定使用的协议(HTTP或HTTPS),而路径(/path1/page1和/path2/page2)只是指定服务器上的不同资源位置。

不同路径通常用于区分网站上不同的页面、资源或服务,但它们不会影响所使用的协议。协议通常由服务器管理员在服务器配置中指定。

你可能感兴趣的:(HTTP,前端)