2011-09-24 3 views
0

자동화 된 컴퓨터에서 많은 조회수를 기록한 웹 서버가 있습니다. 이 머신은 DB에 저장하기 위해 웹 서버에 상태를 보냅니다. 조회수 중 일부는 쓸모가 없으므로 쓸모없는 응답이 네트워크에서 많은 트래픽을 생성하므로 요청의 응답을 피하고 싶습니다. 내 질문은 "원치 않는 트래픽에 대한 서블릿 응답을 제한하는 방법"입니다.서블릿 응답 제한

답변

2

원하지 않는 경우 서블릿에서 아무것도 반환하지 않습니다. 응답을 보내지 않으면 연결이 닫히고 트래픽이 생성되지 않습니다.

그런데 시나리오에 따라 클라이언트 (자동 시스템)와 웹 서버간에 오래 지속되는 HTTP 연결을 유지하는 것이 가능할 수 있습니다. 이렇게하면 각 요청에 대해 새 연결을 열 필요가 없으며 더 높은 복잡성이 가치가있는 경우 일부 바이트를 저장할 수 있습니다.

3

나는 HTTP 4xx client error을 재사용 할 것입니다. 선택할 수있는 것은 이러한 요청의 "쓸데없는 점"에 달려 있습니다.

매개 변수가 누락되어 요청이 잘못되었을 경우 HTTP 400 Bad Request을 반환하십시오.

response.sendError(HttpServletResponse.SC_BAD_REQUEST); 

부적절한 승인으로 인해 요청을 금지 한 경우 HTTP 403 Forbidden을 반환하십시오. 클라이언트가 똑똑하면

response.sendError(HttpServletResponse.SC_FORBIDDEN); 

, 그들은 기록 얻을 것이다 및 책임 관리자/개발자는 그것으로보고 결국 문제를 해결해야한다. 이것은 윈 - 윈 (win-win) 제도입니다.

1

먼저 이러한 요청을 피하려면 서버에 exclusion file을 사용해보십시오. 그래도 문제가 해결되지 않으면 "쓸모없는"것으로 확인 된 요청에 대한 응답으로 금지 된 메시지 (403 status)를 보내십시오. 일반적으로 user agent header에서 특정 봇을 검색합니다.

관련 문제