Tomcat gzip 압축 설정
3030 단어 tomcat
1. server. xml 파일 설정
protocol = "HTTP / 1.1" 속성 값 을 포함 하 는 connector 를 찾 아 다음 설정 을 추가 합 니 다.
compression="on" compressionMinSize="50" noCompressionUserAgents="gozilla, traviata" compressableMimeType="application/json,text/html,text/xml,text/javascript,text/css,text/plain"
그 중:
compressable MimeType 은 압축 된 mimetype 을 사용 하고, noCompressionUserAgent 는 gzip 압축 을 사용 하지 않 는 브 라 우 저 를 표시 합 니 다.
2. 응용 프로그램 에서 출력 데이터
response.setContentType("application/json;charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.print(......);
writer.flush();
writer.close();
여 기 는 주로 Content - Type 이 머리 를 설정 하려 고 합 니 다. 이전에 설정 한 copressable Mime Type 목록 에 있어 야 합 니 다.
3. gzip 압축 된 데이터 가 져 오기
http 요청 을 HttpClient 방식 으로 모 의 합 니 다. gzip 압축 된 데 이 터 를 가 져 오 려 면 accept - encoding 요청 헤더 의 값 에 gzip 형식 을 추가 해 야 합 니 다.
public static void main(String[] args) throws Exception {
HttpMethod method = new GetMethod("http://localhost/web/user");
method.setRequestHeader(new Header("accept-encoding","gzip,deflate,sdch"));
HttpClient client = new HttpClient();
client.executeMethod(method);
String response = method.getResponseBodyAsString();
System.out.println("---------------------------------------------------------");
System.out.println(response);
System.out.println("---------------------------------------------------------");
String res = getUngzipString(method);
System.out.println("---------------------------------------------------------");
System.out.println(res);
System.out.println("---------------------------------------------------------");
System.out.println();
}
public static String getUngzipString(HttpMethod method) throws Exception{
InputStream is = method.getResponseBodyAsStream();
GZIPInputStream gzin = new GZIPInputStream(is);
InputStreamReader isr = new InputStreamReader(gzin, "UTF-8");
java.io.BufferedReader br = new java.io.BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String tempbf;
while ((tempbf = br.readLine()) != null) {
sb.append(tempbf);
}
isr.close();
gzin.close();
System.out.println(method.getResponseHeader("Content-Type")+"-->"+method.getResponseHeader("Content-Type").getValue());
return sb.toString();
}
예 를 들 어 상단 코드 는 gzip 를 읽 는 두 가지 방법 을 테스트 하 는 것 입 니 다. 첫 번 째 인쇄 System. out. println (response) 출력 내용 은 어 지 러 운 코드 이 고 두 번 째 인쇄 System. out. println (res) 출력 은 gzip 압축 해제 후의 내용 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EC2 인스턴스에 Tomcat 설치전제 조건: Amazon 계정이 있어야 합니다. Amazon 계정에 로그인하고 EC2 인스턴스를 시작합니다. 여기에서 프리 티어를 선택했고 Amazon Linux 2를 실행하는 EC2 인스턴스를 시작했습니다. 시작 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.