Я использую общую учетную запись веб-хостинга на сервере Linux. Мой серверный PHP-скрипт можно вызвать из моего приложения Windows (клиента) с помощью Windows розетки. Не показывая слишком много кода (который является базовым соединением по протоколу HTTP с портом 80), клиентское приложение может отправить следующий заголовок скрипту PHP:
POST
/php/checkupdates.php?ver=1.2.3.4&ref=&nam=some%20name
HTTP/1.0\r\n
Accept: text/plain, text/html, */*\r\n
Accept-Language: en-us\r\n
Accept-Encoding: deflate\r\n
User-Agent: My own agent\r\n
Host:
mydomain.com
\r\n
\r\n
Но по какой-то причине этот скрипт возвращает 403 Forbidden
ошибка. Интересно, что если я загружу этот же URL в веб-браузер, скрипт PHP будет работать нормально.
Чисто методом проб и ошибок я обнаружил, что если я добавлю следующую строку в заголовок, мой PHP-скрипт начнет работать нормально:
Content-Length: 0\r\n
Ну, это все хорошо. Но проблема в том, что для добавления этой строки мне нужно обновить все клиентские (Windows) приложения, которые мои пользователи загружали и использовали некоторое время. Другими словами, это не так просто сделать.
Поэтому я надеялся исправить это со стороны сервера (т.е. PHP). Есть идеи?
PS. Я также должен отметить, что это работало, когда я принимал хостинг у предыдущей веб-хостинговой компании (т.е. без Content-Length
линия.)
PS2. Я пытался связаться с моим текущим хостинг-провайдером, но его техподдержка постоянно спрашивает мой публичный IP. (Возможно, внесите меня в белый список, чтобы я не увидел эту ошибку, которая не решит ее для других.) Другими словами, я не совсем уверен, что они знают, что делают. Поэтому я подумал сначала понять это, прежде чем снова связаться с ними.
Задача ещё не решена.
Других решений пока нет …