如何获取URL链接是http还是https
2016-06-23 15:19
399 查看
如题:
一般在后端有三种方式获取。
1,JAVA截取链接地址。
String URL = request.getRequestURL().toString();
if(!URL.startsWith("https:"))
{
System.out.println("HTTPS");
}
2,JAVA获取协议
if("http".equals(request.getScheme()))
System.out.println("HTTP");
if("https".equals(request.getScheme()))
System.out.println("HTTPS");
3,JS获取协议
if("https:" == document.location.protocol)
alert("HTTPS");
以上方法一般情况下都是管用的。不过有些受到服务器环境的影响,比如负载均衡、多重转发。这样上面的方法就不管用了,这时候url链接和协议已经不是那么规则了。
之前遇到一个需求就是把某个页面限定是http的,尝试上面三种判断后无效,故选择在vm里面进行判断。如下:
script type="text/javascript">
if( location.href.indexOf("https") > -1 ){
location.href = "http://"+ location.hostname +"/XXXX.htm";
}
</script>
一般在后端有三种方式获取。
1,JAVA截取链接地址。
String URL = request.getRequestURL().toString();
if(!URL.startsWith("https:"))
{
System.out.println("HTTPS");
}
2,JAVA获取协议
if("http".equals(request.getScheme()))
System.out.println("HTTP");
if("https".equals(request.getScheme()))
System.out.println("HTTPS");
3,JS获取协议
if("https:" == document.location.protocol)
alert("HTTPS");
以上方法一般情况下都是管用的。不过有些受到服务器环境的影响,比如负载均衡、多重转发。这样上面的方法就不管用了,这时候url链接和协议已经不是那么规则了。
之前遇到一个需求就是把某个页面限定是http的,尝试上面三种判断后无效,故选择在vm里面进行判断。如下:
script type="text/javascript">
if( location.href.indexOf("https") > -1 ){
location.href = "http://"+ location.hostname +"/XXXX.htm";
}
</script>
相关文章推荐
- In Gradle projects, always use http://schemas.android.com/apk/res-auto for custom attributes
- 17年社交网络老司机解读网红现象
- Google搜索 配置 强制用HTTPS
- TCP连接状态详解及TIME_WAIT过多的解决方法
- Volley+ViewPager加载网络图片
- 网络请求框架
- 【httplistener监听获取Post请求参数】
- Connection is not open httpClient 的问题解决方案
- 【httplistener监听获取Post请求参数】
- httpclient 3.0 访问rest
- Android加载网络长图的处理
- HttpURLConnection用法详解
- 详细解读神经网络十大误解,再也不会弄错它的事情原理
- Android加载网络GIF完整解决方案
- glide 加载中异常监听
- glide缓存
- Glide图片加载
- 所有 HTTP 状态代码及其定义
- 图解TCP三次握手
- ASP4.5应用部署到IIS7.5上,浏览后报HTTP 404错误