Error Fetching http headers is a common error to encounter when working with the SLAPI. Here is how to fix it.
"Error Fetching http headers"
is a common error to encounter when working with the SLAPI. Fortunately, it is not terribly difficult to avoid. This error most commonly met when working with a large sets of data and can be a bit cryptic, as it seems to imply some sort of connection issue. In truth, it is a client side error provided when a timeout occurs while waiting for a response from the API.
When this error is encountered, there are three common solutions to head off the error by remedying either the timeout directly or how the API returns the results.
The Problem
Lets say you want to get information about your account, so you make a API call to SoftLayer_Account::getObject, which works perfectly fine. Then you add an object mask to that API call to pull in various relational properties, like invoices, tickets, hardware etc. Which all works fine because your account is new and doesn’t have many of those things on it. Time goes by, and slowly that API call starts taking a bit longer as each month you get increasingly more complex invoices, more tickets, hardware etc. Each time you make this API call, our database has to pull all of this information together before returning it to you, and eventually you’ll get hit with this error, and wonder what went wrong.
The Solutions
There isn’t really a hard limit on how many objects you can request in an API call, as it really just depends on how long it takes our database to get them all collected for you. However there are a few things you can try.
Socket Timeout
This varies depending on what client you are using to communicate with the SLAPI, but increasing your timeout limit to several minutes may help. Re-trying the request itself might also work. This is the easiest solution, but also the least likely to work long term.
Object masks
In our problem example, lets say we are using the following object mask mask[invoices, tickets, hardware]
, which will get our invoices, tickets, and hardware as you might expect. Since we have a great number of all of those, the API call returns "Error Fetching http headers"
, so we can use our object mask to limit what we get back.
We can do this by adding in some Local
properties to limit the amount of data returned. mask[invoices[id], tickets[id], hardware[id]]
for example, will only return the id
of each invoice, ticket, and hardware. When you select Local
properties in an object mask, all other unspecified properties are UNselected in turn.
Breaking up the API call
ALternatively, you can usually break up the API call into multiple parts. SoftLayer_Account::getObject(objectMask=mask[invoices, tickets, hardware])
could be broken up into
SoftLayer_Account::getInvoices()
SoftLayer_Account::getTickets()
SoftLayer_Account::getHardware()
Generally speaking, most relational properties on a service will have a corresponding get
method. So tickets
becomes getTickets
.
Result limits
The use of result limits allows for pagination of the returned objects. By setting the number of objects to return and an offset to start from, batch processing of results is possible, which results in a quicker processing time overall.
The trick with result limits though is that the method you call has to return a list. SoftLayer_Account::getObject for example only returns a single object, so you can not use a result limit there. However, methods like SoftLayer_Account::getHardware return a list, and you can use a result limit to step through the data and avoid the error.
-Phil
У меня проблема с SOAP, но я не нашел реального ответа.
try {
$objResponse = $objSoapClient->$strMethod($objMethod->getSoapRequest());
}
catch (SoapFault $e) {
GlobalLogState::write("exception with code(".$e->getCode()."): n".$e->getMessage());
}
Это мой простой SOAP-запрос в блоке try catch.
Я получаю исключение SoapFault:
Error Fetching http headers
В чем причина этого?
2
Решение
Чтобы исправить эту ошибку, мы можем увеличить либо увеличить время ожидания сокета default_socket_time
в php.ini
или добавить connection_timeout
параметр в массиве параметров передается конструктору SoapClient.
Эти параметры находятся в секунд.
-
В php.ini
default_socket_timeout = 120
Кроме того, вы можете изменить код
ini_set('default_socket_timeout', 120);
Примечание. Время ожидания сокета по умолчанию в php составляет 60 секунд.
connection_timeout
параметр в конструкторе SoapClient
$client = new SoapClient($wsdl, array('connection_timeout' => 120));
0
Другие решения
Конфигурация, которая работала для меня, определяла в моем php-скрипте следующие параметры:
ini_set('default_socket_timeout', 5000);
$client = new SoapClient($url,array(
'trace' =>true,
'connection_timeout' => 5000,
'cache_wsdl' => WSDL_CACHE_NONE,
'keep_alive' => false,
));
Прокомментируйте, пожалуйста.
Самое важное определение параметра, согласно моему опыту с этой проблемой, было ini_set (‘default_socket_timeout’, 5000);
Во время моих тестов я установил default_socket_timeout равным 5 секундам, и ошибка «Ошибка получения заголовков http» возникла мгновенно.
Я надеюсь, что это поможет вам.
0
Bug #41983 | Error Fetching http headers | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Submitted: | 2007-07-12 20:56 UTC | Modified: | 2017-03-31 14:03 UTC |
|
||||||||||
From: | ipso at snappymail dot ca | Assigned: | dmitry (profile) | |||||||||||
Status: | Closed | Package: | SOAP related | |||||||||||
PHP Version: | 5.2.3 | OS: | Linux | |||||||||||
Private report: | No | CVE-ID: | None |
[2007-07-12 20:56 UTC] ipso at snappymail dot ca
Description: ------------ I'm trying to use a SOAP API on an embedded device, the device is responding to the SOAP request, however PHP is saying there is an error fetching headers. Reproduce code: --------------- SOAP Request: -------------------------------------------------------------------------- POST /iWsService HTTP/1.1 Host: 192.168.1.201 Connection: Keep-Alive User-Agent: PHP-SOAP/5.2.3 Content-Type: text/xml; charset=utf-8 SOAPAction: "uri:zksoftware#GetDate" Content-Length: 494 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="uri:zksoftware" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:GetDate><ArgComKey xsi:type="xsd:string">0</ArgComKey></ns1:GetDate></SOAP-ENV:Body></SOAP-ENV:Envelope> Response from SOAP Server: -------------------------------------------------------------------------- HTTP/1.0 200 OK Server: ZK Web Server Pragma: no-cache Cache-control: no-cache Content-Type: text/xml Connection: close <?xml version="1.0" encoding="iso8859-1" standalone="no"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <GetDateResponse> <Row Date='2006-06-24' Time='14:24:11'></Row> </GetDateResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> However PHP returns: [faultstring] => Error Fetching http headers Expected result: ---------------- Expect PHP to parse the SOAP response properly.
Patches
Add a Patch
Pull Requests
Add a Pull Request
History
AllCommentsChangesGit/SVN commitsRelated reports
[2007-07-13 08:06 UTC] arrakami at gmail dot com
I have the same problem and i would like to give some feedback too. But i can't find a way to capture the HTTP response. Any suggestions how i could do that? The soap server is 3rd party.
[2007-07-13 08:34 UTC] dmitry@php.net
It seems like some kind of incompatibility between ext/soap and your soap or HTTP server. To fix the problem I need capture of HTTP response in binary form (including all special chars). Or give me a real PHP code that access buggy SOAP server so I'll able to reproduce it myself.
[2007-07-13 15:40 UTC] ipso at snappymail dot ca
I emailed a TCP dump of the SOAP request/response to: dmitry@php.net
[2007-07-19 16:27 UTC] ipso at snappymail dot ca
Just wanted to follow-up and make sure you got the email okay and have all the data you need to help track down the issue? Thanks for looking into this.
[2007-07-21 17:20 UTC] ipso at snappymail dot ca
I had someone look into this for me, apparently the device isn't sending the "rn" at the end of the header, but only "n". So instead of: if (strcmp(headerbuf, "rn") == 0) { Use: if (strcmp(headerbuf, "rn") == 0 || strcmp(headerbuf, "n") == 0) {
[2007-07-21 17:22 UTC] ipso at snappymail dot ca
Sorry, here is the file and line that needs changing: ext/soap/php_http.c:1298
[2007-07-24 09:28 UTC] dmitry@php.net
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better.
[2017-03-31 13:51 UTC] maarten dot segers at amplexor dot com
How has this been resolved? We still experience the "Error Fetching http headers" error using SoapClient.
[2017-03-31 13:53 UTC] spam2 at rhsoft dot net
> How has this been resolved? > We still experience the "Error Fetching http headers" > error using SoapClient PHP Version: 5.2.3 how about stop re-open *10 years* old bugreports at least without mentioning you PHP version and if it's below 7.0.0 you won't get any change
[2017-03-31 14:02 UTC] maarten dot segers at amplexor dot com
PHP 7.0.15-1~dotdeb+8.1 There's a ton of blog posts out there on "Error Fetching http headers" with SoapClient but after ten years the only ticket fixing this cryptic message doesn't explain how.
[2017-03-31 14:03 UTC] requinix@php.net
-Block user comment: No
+Block user comment: Yes
используя PHP5 SoapClient; Я могу получить список функций, выполнив $client->__getFunctions()
но когда я вызываю $client->myFunction(...)
я всегда получаю эту ошибку.
Я googled и нашел, чтобы увеличить default_socket_timeout в php.ini, но это не сработало.
… всегда виноват.
Эта ошибка часто возникает, когда значение default_socket_timeout
превышено для ответа SOAP. ( См. Эту ссылку .)
Примечание от конструктора SoapClient: параметр connection_timeout
используется для определения значения тайм-аута для подключения к службе, а не для таймаута для его ответа.
Вы можете увеличить его так:
ini_set('default_socket_timeout', 600); // or whatever new value you want
Имейте в виду, что вы не должны использовать это как постоянное решение , а скорее, чтобы устранить эту ошибку, прежде чем перейти к исследованию, почему служба SOAP так медленно реагирует. Если услуга последовательно медленная, вам может потребоваться автономная / пакетная обработка.
Просто хотел поделиться решением этой проблемы в моей конкретной ситуации (у меня были одинаковые симптомы). В моем сценарии оказалось, что сертификат ssl, предоставляемый веб-службой, больше не доверяет. Фактически это было связано с новым брандмауэром, который был установлен клиентом, который мешал запросу SOAP, но конечным результатом было то, что сертификат не был правильно обслуживан / доверен.
Было немного сложно отследить, потому что вызов SoapClient (даже с трассировкой = 1) не дает очень полезной обратной связи.
Я смог доказать ненадежный сертификат, используя:
openssl s_client -connect <web service host>:<port>
Я знаю, что это не будет ответом на все проблемы, но, надеюсь, это помогает кому-то. В любом случае, я думаю, что важно понять, что причина этой ошибки (ошибка: «HTTP» faultstring: «Error Fetching http headers») обычно будет проблемой сети / сокета / протокола / связи, а не просто «недостаточно времени для запроса ». Я не могу себе представить, что расширение значения default_socket_timeout позволит решить эту проблему очень часто, и даже если это произойдет, наверняка было бы лучше решить вопрос о том, почему это так медленно в первую очередь.
Я полагаю, что уже слишком поздно, но у меня такая же проблема. Я пробую тайм-аут сокета, но он не работает. Моя проблема заключалась в том, что клиент и сервер, на том же физическом сервере. Когда клиентский код работает на одном и том же физическом сервере, я получаю эту ошибку, но с тем же кодом клиента, который переместился на мой локальный хост, запросив сервер (клиент и сервер были выполнены в двух разных мечках), все работает нормально.
Может быть, это может помочь кому-то другому!
Я просто хотел добавить, для полноты, что похоже на Manachi, я получил это сообщение, потому что сертификат клиента, который я использовал, требовал ключевой фразы, и у меня случайно был дополнительный символ в конце фразы. Это сообщение просто для того, чтобы предложить еще одно предложение для изучения. Если хост требует использования сертификата клиента (через параметр local_cert), убедитесь, что вы указали правильный путь к сертификату и правильную кодовую фразу (если необходимо). Если вы этого не сделаете, очень вероятно, что вы увидите это же сообщение об ошибке.
Ни один из вышеперечисленных методов не работал для меня.
Когда я проанализировал заголовок запроса из __getLastRequestHeaders, я увидел следующее:
POST /index.php/api/index/index/?SID=012345 HTTP/1.1 Host: www.XYZ.com
URL-адрес API, который я использовал, был другим, например, http://www.ABC.com. Я изменил URL-адрес API на http://www.XYZ.com/index.php/api?wsdl, а затем он сработал.
Оба URL-адреса вернули один и тот же WSDL с одного и того же сервера, но только один разрешенный вход в систему.
У меня была эта проблема, и я проверил, и в моем случае был брандмауэр. PHP неправильно показывает ошибку. Чтобы выполнить запрос, брандмауэр ответил:
HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 ... <html ... <h1>Direct Access IP is not allowed</h1> ... </html>
SoapClient ожидает конверт SOAP, но получает HTML-код. Вот почему PHP отвечает: «Ошибка получения заголовков Http», потому что он не может понять, что он получил в ответ. Чтобы устранить эту проблему, обратитесь к сетевому администратору, чтобы проверить, нет ли какого-либо брандмауэра, NAT или прокси-сервера, а затем попросить их принять необходимые меры.
Проверьте HTTP-заголовок ответа. В моем случае на API-сайте был установлен следующий заголовок:
<IfModule mod_headers.c> Header set Connection keep-alive </IfModule>
Кажется, что PHP SoapClient не может справиться с этим вариантом. В результате тело ответа было пустым, но длина содержимого в заголовке ответа была установлена правильно.
Удалите эту строку или измените ее, чтобы «закрыть» решить мою проблему.
У меня была такая же проблема, и я попробовал следующее, отключив keep_alive
.
$api_proxy = new SoapClient($api_url, array('trace' => true, 'keep_alive' => false));
Однако это не сработало для меня. То, что работало для меня, было отключением кэша SOAP. Похоже, что кеширование неверных запросов и после отключения я фактически заметил, что мои запросы выполнялись быстрее.
На сервере linux вы можете найти это в файле /etc/php.ini
.
Найдите soap.wsdl_cache_enabled=1
и измените его на soap.wsdl_cache_enabled=0
.
Не забудьте перезагрузить apache. service httpd reload
Конфигурация, которая работала для меня, определяла на моем php-скрипте следующие параметры:
ini_set('default_socket_timeout', 5000); $client = new SoapClient($url,array( 'trace' =>true, 'connection_timeout' => 5000, 'cache_wsdl' => WSDL_CACHE_NONE, 'keep_alive' => false, ));
Прокомментируйте, пожалуйста.
Наиболее важным параметрическим определением, согласно моему опыту с этой проблемой, было
ini_set('default_socket_timeout', 5000);
Во время моих тестов я определил значение default_socket_timeout до 5 секунд, и ошибка «Ошибочная выборка заголовков HTTP» была поднята мгновенно.
Надеюсь, это поможет!
Я пытаюсь вызвать WS через https на удаленном хосте: удаленный порт, и я получаю:
Ошибка при загрузке заголовков http
использование PHP5 SoapClient; Я могу получить список функций, выполнив $client->__getFunctions()
, но когда я вызываю $client->myFunction(...)
, я всегда получаю эту ошибку.
Я гуглил и обнаружил, что увеличение default_socket_timeout
в php.ini должно исправить это, но это не сработало.
Кто-нибудь может предложить мне решение?
ОБНОВЛЕНИЕ: вот код:
$wsdl="myWSDL";
$client = new SoapClient($wsdl,array('connection_timeout'=>5,'trace'=>true,'soap_version'=>SOAP_1_2));
var_dump($client->__getFunctions());
try {
$response=$client->myFunction("1","2","3");
} catch (SoapFault $fault) {
var_dump($fault);
}
}
всегда заканчивается ошибкой.
Как мне решить проблему?
Ответ 1
Эта ошибка часто наблюдается, когда значение default_socket_timeout
превышено для ответа SOAP. (См. ссылку.)
Примечание от конструктора SoapClient: параметр connection_timeout
используется для определения значения времени ожидания для подключения к службе, а не для времени ожидания его ответа.
Вы можете увеличить его так:
ini_set('default_socket_timeout', 600); // or whatever new value you want
Это должно сказать вам, является ли тайм-аут проблемой, или у вас есть другая проблема. Имейте в виду, что вы не должны использовать это как постоянное решение, а, скорее, посмотреть, избавится ли он от ошибки, прежде чем приступить к расследованию, почему служба SOAP реагирует так медленно. Если служба постоянно медленная, вам, возможно, придется рассмотреть возможность автономной/пакетной обработки.
Ответ 2
Просто хотел поделиться решением этой проблемы в моей конкретной ситуации (у меня были одинаковые симптомы). В моем сценарии оказалось, что сертификат ssl, предоставляемый веб-службой, больше не доверяет. Фактически это было связано с новым брандмауэром, который был установлен клиентом, который мешал запросу SOAP, но конечным результатом было то, что сертификат не был правильно обслуживан/доверен.
Было трудно отследить, потому что вызов SoapClient (даже с trace = 1) не дает очень полезной обратной связи.
Мне удалось доказать ненадежный сертификат, используя:
openssl s_client -connect <web service host>:<port>
Я знаю, что это не будет ответом на все проблемы, но, надеюсь, это помогает кому-то. В любом случае, я думаю, что важно понять, что причина этой ошибки (ошибка: «HTTP» faultstring: «Ошибка получения заголовков HTTP» ) обычно будет проблемой сети/сокета/протокола/связи, а не просто «недостаточно разрешать времени для запроса». Я не могу себе представить, что расширение значения default_socket_timeout позволит решить эту проблему очень часто, и даже если это произойдет, наверняка было бы лучше решить вопрос о том, почему это так медленно, в первую очередь.
Ответ 3
Я полагаю, что это слишком поздно, но у меня такая же проблема. Я пробую тайм-аут сокета, но он не работает.
Моя проблема заключалась в том, что клиент и сервер, на том же физическом сервере. Когда клиентский код работает на одном физическом сервере, я получаю эту ошибку, но с тем же кодом клиента, который перемещается на мой локальный хост, запрашивая сервер (клиент и сервер выполнялись в двух разных метоках) все работает нормально.
Возможно, это может помочь кому-то еще!
Ответ 4
Установка 'keep_alive'
на false работала для меня:
new SoapClient($api_url, array('keep_alive' => false));
Ответ 5
Я столкнулся с той же проблемой и попробовал все вышеперечисленные решения. К сожалению, ничего не сработало.
- Тайм-аут сокета (не работает)
- Пользовательский агент (не работает)
- Конфигурация SoapClient, cache_wsdl и Keep-Alive и т.д…
Я решил свою проблему с добавлением свойства заголовка обжатия. Это действительно требуется, когда вы ожидаете ответа в сжатом формате gzip.
//set the Headers of Soap Client.
$client = new SoapClient($wsdlUrl, array(
'trace' => true,
'keep_alive' => true,
'connection_timeout' => 5000,
'cache_wsdl' => WSDL_CACHE_NONE,
'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
));
Надеюсь, это поможет.
Удачи.
Ответ 6
Конфигурация, которая работала для меня, определяла на моем php script следующие параметры:
ini_set('default_socket_timeout', 5000);
$client = new SoapClient($url,array(
'trace' =>true,
'connection_timeout' => 5000,
'cache_wsdl' => WSDL_CACHE_NONE,
'keep_alive' => false,
));
Прошу прокомментировать.
Самое важное определение параметра, согласно моему опыту с этой проблемой, было
ini_set('default_socket_timeout', 5000);
Во время моих тестов я определил default_socket_timeout до 5 секунд, и ошибка «Ошибки при получении заголовков http» была поднята мгновенно.
Надеюсь, это поможет вам!
Ответ 7
Я просто хотел добавить, для полноты, что похоже на Manachi, я получил это сообщение, потому что сертификат клиента, который я использовал, требовал кодовую фразу, и у меня случайно был дополнительный символ в конце фразы. Это сообщение просто для того, чтобы предложить еще одно предложение для изучения. Если хост требует использования сертификата клиента (через параметр local_cert), убедитесь, что вы указали правильный путь к сертификату и правильную кодовую фразу (если необходимо). Если вы этого не сделаете, очень вероятно, что вы увидите это же сообщение об ошибке.
Ответ 8
Ни один из вышеперечисленных методов не работал у меня.
Когда я проанализировал заголовок запроса из __getLastRequestHeaders, я увидел следующее:
POST /index.php/api/index/index/?SID=012345 HTTP/1.1
Host: www.XYZ.com
URL API, который я использовал, был другим, например, www.ABC.com. Я изменил URL-адрес API на www.XYZ.com/index.php/api?wsdl, а затем он сработал.
Оба URL-адреса возвратили один и тот же WSDL с одного и того же сервера, но только один разрешенный вход.
Ответ 9
У меня была эта проблема, и я проверил, и в моем случае был брандмауэр. PHP неправильно показывает ошибку. Чтобы выполнить запрос, ответил брандмауэр:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
...
<html
...
<h1>Direct Access IP is not allowed</h1>
...
</html>
SoapClient ожидает конверт SOAP, но получает код HTML.
Именно поэтому PHP отвечает: «Ошибка получения заголовков Http», потому что он не может понять, что он получил в ответ. Чтобы устранить эту проблему, обратитесь к сетевому администратору, чтобы проверить, нет ли какого-либо брандмауэра, NAT или прокси-сервера, а затем попросите их принять необходимые меры.
Ответ 10
Проверьте ответ HTTP-заголовка. В моем случае на API-сайте был установлен следующий заголовок:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Кажется, что PHP SoapClient не может справиться с этой опцией. В результате тело ответа было пустым, но длина содержимого в заголовке ответа была установлена правильно.
Удалите эту строку или измените ее на «закрыть», решив мою проблему.
Ответ 11
У меня была такая же проблема, и я попробовал следующее, отключив keep_alive
.
$api_proxy = new SoapClient($api_url, array('trace' => true, 'keep_alive' => false));
Однако это не сработало для меня. То, что работало для меня, было отключением кэша SOAP. Кажется, он кэшировал неправильные запросы, и после отключения я фактически заметил, что мои запросы выполнялись быстрее.
На сервере linux вы можете найти это в своем файле /etc/php.ini
.
Найдите soap.wsdl_cache_enabled=1
и измените его на soap.wsdl_cache_enabled=0
.
Не забудьте перезагрузить apache.
service httpd reload
Ответ 12
Другой возможной причиной этой ошибки могут быть некоторые операции OpenSSL, оставляющие не очищенные ошибки. Поместите этот фрагмент кода перед SOAP-запросом, чтобы очистить их:
while (openssl_error_string()) {}
Ответ 13
Я получил эту же ошибку, и в моем случае сервер, на который я отправлял запрос, отвечал с ошибкой тайм-аута шлюза 504. Я не осознавал этого, пока не пошел по URL-адресу в браузере, который запрашивался запросом SOAP:
например. https://soap-request-domain-here.com/path/to/file.wsdl
Ответ 14
Мы встречали Error fetching http headers
при каждом втором вызове SoapClient::__soapCall(,)
. Однако не каждая конечная точка/сервер мыла была затронута.
Оказалось, что переключение на http
надежно работает для всех серверов, но соединения через https
/безопасный HTTP показали вышеупомянутые симптомы.
openssl_error_string()
, как предложил Furgas, не вернул никаких ошибок.
Оказалось, что некорректно работающие мыльные серверы отправляют HTTP-заголовок с каждым ответом, что приводит к тому, что мыльный клиент задыхается от второго мыльного вызова:
Connection: Upgrade, close
. Хорошо работающие серверы не отправили Обновление на последовательные ответы.
Что сработало для нас:
- установив
keep_alive
в значение false, как упомянул Тьяго - Отключение заголовков Upgrade- и Connection через файлы .htaccess
Хотя мыльные серверы с хорошим поведением не нуждались в этом, однажды для неправильного поведения потребовалось установить для keep_alive значение false и отключить заголовки.
# .htaccess
Header unset Upgrade
Header unset Connection
Основная причина до сих пор неясна, но в Apache имеется отчет об ошибке относительно заголовков обновления при использовании HTTPS.