Я создал очень простой PHP-скрипт, чтобы изолировать проблему, которую я имею. Скрипт просто получает некоторые неуместные данные POST, а затем подсчитывает до 50 с задержкой во время записи в журнал.
Обычно минута в runtime скрипт получит запрос GET откуда-то, что прерывает ответ клиенту. Чтобы исключить проблемы с клиентами, я использую Chrome Advanced Restful для тестирования. Запрос всегда поступает из моего IP-адреса (я зарегистрировал его).
Что может быть причиной этого и как я могу его исправить? Если бы кто-нибудь мог помочь мне взломать это, я был бы очень благодарен, потому что я не могу, чтобы жизнь меня поняла.
Вот сценарий. Обратите внимание на эхо в начале, успокоительный клиент никогда не получает этого, потому что бродячий ответ GET всегда прерывает его:
<?php echo "SCRIPT HAS FINISHED!"; $q = $_POST['q']; $req=$_SERVER['REQUEST_METHOD']; $ip = $_SERVER['REMOTE_ADDR']; $agent = $_SERVER['HTTP_USER_AGENT']; writelog("IP Logged: ".$ip); writelog("User agent: " . $agent); writelog("Post data: " . $q); writelog("Request method: " . $req); if ($q==""){ writelog ("MISFIRE!!!"); die; } writelog("*** Error check started ***"); for ($i = 1; $i <= 50; $i++) { writelog ($i); sleep(rand(2,20)); } function writelog($towrite) { $tdate=date('d/m/YH:i:s'); $file = 'log/testlog.txt'; $current = $towrite." --- ".$tdate."\n"; file_put_contents($file, $current, FILE_APPEND); } writelog("*** Error check ended ***"); ?>
И вот типичный результат журнала.
см. после 7-й записи, есть запрос GET .
IP Logged: 86.31.**.99 --- 06/06/2014 10:45:57 User agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 --- 06/06/2014 10:45:57 Post data: foobar --- 06/06/2014 10:45:57 Request method: POST --- 06/06/2014 10:45:57 *** Error check started *** --- 06/06/2014 10:45:57 1 --- 06/06/2014 10:45:57 2 --- 06/06/2014 10:46:05 3 --- 06/06/2014 10:46:12 4 --- 06/06/2014 10:46:19 5 --- 06/06/2014 10:46:33 6 --- 06/06/2014 10:46:37 7 --- 06/06/2014 10:46:41 IP Logged: 86.31.**.99 --- 06/06/2014 10:46:44 User agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 --- 06/06/2014 10:46:44 Post data: --- 06/06/2014 10:46:44 Request method: GET --- 06/06/2014 10:46:44 MISFIRE!!! --- 06/06/2014 10:46:44 8 --- 06/06/2014 10:47:00 9 --- 06/06/2014 10:47:20 10 --- 06/06/2014 10:47:24
Это заголовки ответов от успокаивающего клиента:
Date: Fri, 06 Jun 2014 10:46:44 GMT Server: Apache Content-Length: 20 Connection: close Content-Type: text/html
Откуда этот запрос GET и как я могу остановить его вмешательство в мои скрипты?