我想将gzip用于我的请求和来自服务器的响应以节省带宽。我的服务器支持100%gzip格式。到目前为止我做了什么:
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", myAuthorization());
headers.add(HttpHeaders.ACCEPT_ENCODING, "GZIP");
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<MyParameters> request = new HttpEntity<>(parameters, headers);
ResponseEntity<? extends MyResponseRaw> response = restTemplate.exchange(url, HttpMethod.POST,
request, myResponse.getClass());
我在请求标题中添加了一个标记,其中“Accept-Encoding”为“GZIP”。但是当我从服务器检入响应对象时,它仍然发送一个普通对象,而不是zip对象,并且在其标题中没有“Content-Encoding”:“GZIP”。
我不知道我是否在这里犯了任何错误,或者我是否需要将我的请求压缩为gzip格式?任何人都可以纠正我吗?
已启用gzip压缩?
如果没有,请将其放在您的属性中:
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css
添加标头只修改了请求的标头,它不会自动进行压缩。
浏览器应该发送接受gzip标头。所以服务器知道它可以压缩客户端的答案。但我认为你不需要自己添加标题。浏览器应该自动执行,spring会自动执行。只需在弹簧侧启用压缩。