2016-07-20 3 views
0

나는 자주 HTTPS를 통해 데이터의 작은 부분을 보내는 클라이언트를 작성하고 있습니다. 데이터는 UTF-8 문자 50 개에서 문자 10k 개 (주로 사람이 읽을 수있는 로그 데이터) 일 수 있습니다. RFC 표준 HTTP 압축을 사용하고 있습니다.HTTP POST 데이터를 언제 압축합니까?

CPU 소비를 최적화해야합니다. 어떤 임계 값이 있는지 궁금합니다. 문자열이 100자를 초과하면 압축을 수행하는 것이 좋습니다.

HTTP 페이로드에는 항상 압축을 적용해야합니까?

답변

0

내 생각에 매우 작은 파일의 압축으로 인한 CPU 오버 헤드는 0에 가깝습니다. 따라서 파일 크기에 대한 테스트를 수행 할 가치가 있다고 생각하지 않습니다.

설명에서 가장 걱정되는 점은 실제로 HTTPS를 통한 많은 작은 요청이있는 것입니다. 아직 그렇지 않은 경우 100 바이트 정도를 압축하는 것보다 많은 CPU를 소비하는 SSL 핸드 셰이크가 너무 많이 발생하지 않도록 SSL 세션 캐싱을 사용하는 것이 좋습니다.

+0

답변 해 주셔서 감사합니다. CPU 프로파일 러를 사용하면 압축률이 가장 높아지므로 그 영향을 줄이려고합니다. 다시 SSL 세션 캐시 - 좋은 호출, 나는 이미 켜져 있는지 확인했습니다. 사실 CURL (기본적으로 CURL)이 기본적으로 설정되어 있습니다. – oleksii

+0

압축이 CURL 외부에서 수행된다고 가정하는 것이 맞습니까? (나는 CURL이 POST 데이터 압축을 기본적으로 지원한다고 생각하지 않는다.) DEFLATE 슬라이딩 윈도우의 크기를 줄여 대용량 파일의로드를 줄이려고 시도 할 수 있습니까? (약간 압축률을 줄이는 것이 좋습니다.) 또한 압축 된 파일은 압축되어 있습니까? (프로젝트에서 이것이 의미가있는 경우) – Arnauld

+0

압축은 CURL 외부에서 수행되며 HTTP POST의 내용 압축을 지원하지 않습니다. 나는 실시간 로그를 보내고 있으므로 슬라이딩 윈도우의 크기는 이미 약 1 초가됩니다. 고부하 (10k 메시지/초)에서는 압축을 통해 많은 이점을 얻습니다. 나는 압축 비율에 관해서 놀 수 있었고 결코 그런 생각을 할 수 없었다. 당신의 도움을 주셔서 감사합니다. – oleksii