2016-05-26 1 views
0

Я работаю над программным обеспечением, использующим http-сообщение, чтобы сделать что-то. HTTP-почта работает отлично везде, но в Windows Server 2012 ему нужен конкретный порядок заголовков. Я прилагаю скриншоты скрипачей. На скриншотах вы можете видеть, что если я изменяю порядок заголовка, он перестает работать.http post не отвечает на сервер Windows 2012

Конкретный порядок работа:

Image1

Изменения хоста на другую линию не работает:

Image2

+0

Вы внедряете клиент, который отправляет POST, реализуя сервер, который получает POST, или и то, и другое? Определите «перестает работать» точно. Что клиент делает (или не делает), когда он отправляет POST с «неправильным» порядком заголовков? Что на самом деле делает сервер (или не делает), когда он получает POST с «неправильным» порядком заголовков? –

+0

Я реализую клиент, который отправляет POST. Клиент работает повсюду, но не на сервере Windows 2012. Серверу Windows 2012 требуется определенный порядок заголовков. Может быть, есть опция, чтобы отключить ее. Когда я отправляю заголовки в другом порядке на сервере Windows 2012, я не получаю никакого результата. Это похоже на блокировку http перед отправкой на сервер. – Heopas

+0

* Windows * не обрабатывает HTTP-сообщения, вместо этого используется приложение HTTP-сервера. Итак, какое серверное приложение вы используете на самом деле? IIS? Apache? Что-то другое? Очень маловероятно, что какой-либо широко используемый HTTP-совместимый сервер проявил бы эту проблему, поэтому мне интересно, возможно, вы используете вместо этого какое-то менее используемое стороннее серверное приложение, и в нем есть ошибка обработки. –

ответ

0

порядок заголовков не важен для заголовков различных имен (порядок заголовков с то же самое имеет значение):

RFC 2616 Section 4.2 Message Headers

Порядок получения полей заголовка с разными именами полей не имеет значения. Тем не менее, «хорошая практика» сначала посылает поля общего заголовка, за которыми следуют поля заголовка запроса или заголовка ответа, и заканчивается полями заголовка объекта.

RFC 7230 Section 3.2.2 Field Order:

Порядок, в котором получены поля заголовка с различными именами полей не является существенным. Тем не менее, хорошей практикой является отправлять поля заголовка, содержащие данные управления сначала, такие как Host on requests и Date on response, так что реализации могут решить, когда не обрабатывать сообщение как можно раньше. Сервер НЕ ДОЛЖЕН применять запрос к целевому ресурсу до тех пор, пока не будет получен весь раздел заголовка запроса, поскольку более поздние поля заголовка могут включать в себя условные обозначения, учетные данные аутентификации или преднамеренно вводящие в заблуждение дублирующие поля заголовка, которые влияют на обработку запроса.

Если сервер HTTP не работает правильно, когда заголовок Host не в нужном порядке, то это является нарушением спецификации HTTP, так как заголовок может появляться в любом порядке, и сервер должен быть готов обрабатывайте это.

+0

Спасибо за приведенную выше информацию. Но проблема в том, что я разрабатываю программное обеспечение, использующее http post. Я не могу установить почтовый заказ http на код, и конкретная проблема появляется только на сервере Windows 2012. Windows 7 работает отлично без определенного порядка. – Heopas

+0

Почему у вас нет контроля над заголовками? Вы используете предварительно созданную библиотеку HTTP?Очень маловероятно, чтобы какая-либо из часто используемых HTTP-библиотек помещала заголовок 'Host' в нижней части списка заголовков, как вы показали. –

+0

Я использую UBOT с http post plugin. Странно то, что на окнах 7 он работает с Host на дне. – Heopas

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