2011-12-12 3 views
6

GAE 서버에서 응답을 gzip하려고하지만 Content-Encoding에서 null을받습니다. 내가 자동으로 압축 할 GAE 서버에서 그것을 읽은AppEngine gzip 압축

connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("Content-Type", 
      "application/json; charset=utf-8"); //"application/json; charset=utf-8" 
connection.setRequestProperty("Accept-Encoding", "gzip"); 
connection.setRequestProperty("User-Agent", "gzip"); 
connection.setUseCaches (false); 
connection.setDoInput(true); 
connection.setDoOutput(true); 

//write 
//read 

System.out.println("Content-Encoding " + connection.getContentEncoding()); 

:

나는 다음과 같은 코드가 있습니다. 그래서 문제가 될 수 있습니까?

+0

GAE는 압축 여부를 묻지 않습니다. 이 경우 파일 크기는 얼마나됩니까? 경험에 비추어 볼 때 1MB가 넘는 파일은 압축되지 않습니다. – David

답변

9

App Engine 프론트 엔드 서버는 응답을 압축해야하는지 결정하기 위해 Accept-EncodingUser-Agent 헤더를 비롯한 여러 가지 요인에 의존합니다. gzip으로 처리 된 응답을 허용한다고 주장하는 사용자 에이전트가 많이 있기는하지만 사실은 이해할 수 없기 때문에이 작업을 수행합니다.

사용자 에이전트를 현명한 사용자 에이전트가 아닌 'gzip'이 아닌 합리적인 것으로 설정해보고 차이가 있는지 확인하십시오.

+6

https://developers.google.com/appengine/kb/general#compression states "gzip으로 압축 된 콘텐츠를 강제로 게재하려면 클라이언트가 Accept-Encoding 및 User-Agent 요청 헤더의 값으로 'gzip'을 제공 할 수 있습니다. ". 어떤 사람들은 그것을보고하고 그렇지 않은 사람도 있습니다. 기본적으로 아무도 진짜 대답을 알 수없는 것 같습니다. – David

+0

수정 된 클라이언트가 Accept-Encoding : gzip을 보내도록 수정했지만, App Engine은 아직 압축되지 않은 상태로 응답했습니다. 그런 다음 UA에 gzip을 추가하면 'User-Agent : Our Real UA String; gzip'과 (Accept-Encoding : gzip'과 함께) 결국 App Engine이 압축 된 응답을하도록했습니다. –

+0

요청을 보내지 않고도이 작업을 수행 할 수 있습니까? 코드 내에서이 값들을 설정하는 것과 같은가? –