java获取请求类型 http https

当http和https请求共存的时候,经常后端需要判断当前请求是https还是http,根据当前请求的类型返回不同的数据,在这里总结了一下。

1、根据请求的Scheme判断,但是这种在Nginx SSL + tomcat集群配置不完全正确的情况下,取出来的永远都是http,是不正确的:

String scheme = request.getScheme();

if(StringUtil.isNotBlank(scheme) ){

return scheme.toLowerCase();

}

2、根据请求的url获取,其实这种内部使用的还是scheme方式,只是内部封装了一下

String url = request.getRequestURL().toString();

if(StringUtil.isNotBlank(url)) && url.startsWith("https"){

return "https";

}

return "https";

3、根据Header请求获取

String refererURL = beat.getRequest().getHeader("https-tag");

if(StringUtil.isNotBlank(refererURL)){

return refererURL.toLowerCase();

}

return "https";

你可能感兴趣的:(java获取请求类型 http https)