Нужен ли нам заголовок «Expect: 100-continue» в заголовке запроса xfire? - PullRequest
4 голосов
/ 26 сентября 2011

Я обнаружил, что apache xfire добавил один заголовочный параметр в заголовок своего сообщения:

POST /testservice/services/TestService1.1 HTTP / 1.1
SOAPAction: "testAPI" Content-Type: text / xml;charset = UTF-8
Пользователь-агент: Mozilla / 4.0 (совместимо; MSIE 6.0; Windows NT 5.0; XFire Client + http://xfire.codehaus.org)
Хост: 192.168.10.111:9082
Ожидается: 100-продолжение

Будет ли это Ожидайте: 100-continue сделает вызов туда и обратно между клиентом xfire и его сервером конечной точки немного бесполезным, потому что он будет использовать еще одно рукопожатие для источникасервер вернул "желающих принять запрос"?

Это только мое предположение.

Vance

1 Ответ

7 голосов
/ 15 января 2012

Я знаю, что это старый вопрос, но так как я только что исследовал эту тему, вот мой ответ. Вам на самом деле не нужно , чтобы использовать "Expect: 100-continue", и это действительно вводит дополнительную передачу туда и обратно. Цель этого заголовка - указать серверу, что вы хотите, чтобы ваш запрос был проверен до публикации данных. Это также означает, что , если установлено, вы обязуетесь ждать (в течение вашего собственного периода ожидания - не бесконечно!) Ответа сервера (либо 100, либо ошибка HTTP) до отправки форма или данные. Хотя это кажется дополнительным расходом, оно предназначено для повышения производительности в случаях сбоя, позволяя серверу уведомлять , а не об отправке данных (поскольку запрос не выполнен).

Если заголовок не установлен клиентом, это означает, что вы не ожидаете от сервера 100 кодов и должны отправить ваши данные в теле запроса. Вот соответствующий стандарт: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html (переход к разделу 8.2.3).

Подсказка для пользователей .NET 4: этот заголовок можно отключить с помощью статического свойства "Expect100Continue"

Подсказка для пользователей libcurl: в старой версии 7.15 была ошибка, когда отключение этого заголовка не работало; исправлено в более новых версиях (подробнее здесь: http://curl.haxx.se/mail/lib-2006-08/0061.html)

...