2010-08-22 6 views
2
  1. В PHP возможно (и безопасно) закрыть http-соединение без возврата какого-либо кода статуса http? Мой сервер - apache.
  2. Будет ли это регистрироваться в журнале доступа или журнале ошибок?

ответ

3

Я не думаю, что это возможно: в конечном итоге именно Apache закрывает соединение и возвращает код состояния, если PHP не испускает его.

У нас был вопрос некоторое время о том, можно ли принудительно отключить http-соединения из PHP. IIRC, консенсус заключался в том, что, за исключением того, что поток сетевого сервера отвечал за текущий запрос, это было невозможно. Ищете вопрос сейчас ... Обновление: Не могу найти его прямо сейчас, извините.

+0

Спасибо за ваш ответ. На самом деле мне нужно запретить некоторые * плохие * http-запросы, даже не записывая их в access_log – mmonem

+1

@mmondm Это материал модуля Apache. – Artefacto

+0

Потому что у меня так часто возникают запросы, которые приводят к тому, что MySQL «слишком много подключений»; проблема, которую мы обсуждали 7 часов назад @Pekka – mmonem

1

Я так не думаю, что не убил самого работника Apache, что, конечно же, не было бы хорошей идеей.

Возможно использование PHP в качестве модуля Apache. Для модулей, которые вы могли бы использовать для этого, может быть доступна какая-то внутренняя функция Apache, но я не знаю достаточного количества внутренних компонентов Apache, чтобы точно сказать.

1

В двух словах Apache вызывает снимки, и вы не можете изменить поведение Apache извне, из соображений безопасности.

6

Я использую следующий код:

/** 
* Make the script run in the background 
* return a message to the browser 
* @param unknown_type $response 
*/ 
function freeUserBrowser($response) 
{ 
     // let's free the user, but continue running the 
     // script in the background 
     ignore_user_abort(true); 
     header("Connection: close"); 
     header("Content-Length: " . mb_strlen($response)); 
     echo $response; 
     flush(); 

} 
+0

это хороший обход, чтобы заставить браузер пользователя закрыть соединение для вас. – Knobik

Смежные вопросы