2016-10-21 7 views
0

나는 sleep (50) 함수를 사용하여 서버 응답 전에 브라우저를 닫지 만 해당 응답 코드는 여전히 200이지만 499가되기를 바란다. 서버가 HTTP 499 액세스 로그를 기록하도록하는 HTTP 499 요청을 만드는 방법은 무엇입니까?HTTP-499 요청을 만드는 방법

답변

0

전체 요청을 Nginx로 보낸 다음 클라이언트 연결 을 닫고 Nginx는 응답을 처리해야합니다. 정적 파일을 요청하는 경우 Nginx는 요청을 처리하는 속도가 매우 빠를 수 있으며 요청이 완전히 수신되어 Nginx에 대한 응답을 아직 사용할 수없는 매우 짧은 창 사이에서 연결이 중지되는 가능성은 매우 낮습니다.

요청 전송이 끝나기 전에 닫는 클라이언트의 큰 입력을 시도했습니다. 오류는 400뿐입니다. 실제로 Nginx 응답 처리의 짧은 시간에 종료해야합니다. 어렵습니다.

이 아닌 경우 응답 (예 : PHP는 fastcgi를 통해)과 같은 동적 언어를 사용하여 응답을 처리합니다 (또는 nginx는 사용자의 제어에서 역방향 프록시입니다). 그러면의 응답란에 sleep()을 쉽게 추가 할 수 있습니다.

단순히 최고 index.php 파일이 추가 :

sleep(30); 

는 당신에게 당신의 브라우저를 종료하는 시간의 30 대 창을 제공 할 것입니다.

결과 : 그것은 작동

127.0.0.1 - - [21/Oct/2016:11:24:23 +0000] "GET/HTTP/1.1" 499 0 "-" "-" "-" 

.

+0

'sleep (30)'을'index.php' 파일의 맨 위에 추가했습니다. 심지어 요청 후 즉시 브라우저를 닫았습니다. nginx는 여전히 200.the를 기록합니다. 브라우저를 닫을 때 의심 스럽습니다. 요청이 중단되지 않습니다. 왜냐하면 나는 fiddler를 proxy.so로 사용하기 때문에 새로운 요청이 속한 피 들러에서 세션을 중단합니다. 다음 nginx 499 기록합니다.하지만 이유를 이해할 수 없습니다. – Kay

관련 문제