http请求header相关的几个常见问题-创新互联

http协议可能是目前web远程调用领域最常用的协议,一如之前的soap协议。作为轻量级可靠传输协议,基于http协议的服务几乎成了restful的代名词,今天列举几个使用过程中http 相关的问题。

10年积累的成都网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有钟山免费网站建设让你可以放心的选择与我们合作。
  1. 跨域
    大家也最常遇到,解决办法也有很多,譬如在网关服务中引入CorsFilter,指定或者放开所有的域名和header。
@Bean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("*");  
        config.addAllowedHeader("*");
        config.addAllowedMethod("OPTIONS");
        config.addAllowedMethod("HEAD");
        config.addAllowedMethod("GET");
        config.addAllowedMethod("PUT");
        config.addAllowedMethod("POST");
        config.addAllowedMethod("DELETE");
        config.addAllowedMethod("PATCH");
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }

另一种解决办法是调整代理服务器如nginx。

add_header 'Access-Control-Allow-Origin' '$http_origin';
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type,*';
  1. 中文header
    http协议不支持中文header!!!
    所以想要在header中传递中文信息,需要转码,接收端再解码。

Base64.encodeBase64String(origin.getBytes("utf-8"));

  1. header丢失
    刚遇到的一个问题,request header中有个参数request_user_id, 认证服务拦截器发现request.getHeader取不到。一开始怀疑是apigateway的问题,查看了apigateway的代码,发现只是普通的转发,并没有重新代理请求,所以不存在这个问题;将请求地址改为ip重试(一开始请求的是域名地址),发现可以获取header值,header参数的准入主要靠
    corsFilter的 config.addAllowedHeader(""),现在配置的是,也就是除了中文外的所有参数都应该能传递才对。
    重新梳理服务链路,域名解析-nginx-apigateway-目标服务,锁定到nginx头上。nginx内部的设置,也是允许所有,但是nginx还有个限制,就是下划线的参数,会被忽略(坑啊!)
    调整nginx的http参数,打开下划线参数,重启,问题得到解决。

underscores_in_headers on;

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文名称:http请求header相关的几个常见问题-创新互联
本文链接:http://azwzsj.com/article/eddjc.html