생성 시간이 200 초 이상인지를 감지하는 java의 필터가 있는데, 캐시 제어 헤더를 특정 시간으로 설정합니다.응답하는 방법 .setHeader가 작동합니까?
이것은 서버가 느려지는 것을 방지하기 위해 만들어졌으며 자동 부하 부하의 일종입니다.
어떤 기회는 응답 헤더의 일부를 쓰기 전에 몸을 쓸 때, 더 많은 메모리를 사용하여 containter serlvet함으로써, :
나는 그것에 대해 의심의 여지가?resp.write()를 수행하는 동안 서블릿 컨테이너 (tomcat 또는 기타)가 데이터를 연결에 쓸 수 있습니까?
메모리 문제가 걱정됩니다. 응답이 끝날 때까지 버퍼를 사용하지 않고 모든 응답을 생성하기 위해 여분의 메모리를 사용하고 서블릿 컨테이너가 쓰기를 시작한다고 생각합니다.
대부분의 Java 응용 프로그램 서버는 임계 값에 도달 할 때까지 출력을 버퍼링 한 다음 버퍼를 클라이언트로 플러시합니다. 모든 HTTP 헤더가 출력 될 때까지 HTTP 본문을 출력 할 수 없습니다. HTTP가 작동하는 방식입니다. –
@paul : 임계 값에 도달하면 버퍼가 플러시되고 resp.setHeader()가 실행됩니다. 예외? – user2427
또한 앱 서버에 따라 다릅니다. 필자의 경험은 WebSphere와 관련이 있으며, 해당 애플리케이션 서버는 접근 방식을 IllegalStateException을 던지는 것에서 경고를 로깅하는 것으로 바 꾸었습니다 (http://www-01.ibm.com/support/docview.wss?uid=swg1PQ97899). –