Delphi 2010, исходный код Last Indy от Svn.
Кто-нибудь знает, как заставить TIDHttpServer отправлять ответ http 1.0 вместо http 1.1?Я хочу избавиться от постоянных соединений (keep-alive), а также хочу, чтобы клиент отключался от моего сервера, а не отключал сервер от клиента (чтобы избежать TIME_WAIT на моем сервере).
Некоторые данные:
Запрос, сделанный клиентом (в данном случае Internet Explorer):
GET / HTTP / 1.0
Принимать: /
Accept-Language: pt-BR
User-Agent: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .NET CLR 2.0.50727;.NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Хост: localhost: 114
Соединение: Keep-Alive
Ответ от моего Indy-сервера:
HTTP / 1.1 200 OK
Соединение: закрыто
Content-Type: text / html;charset = ISO-8859-1
Content-Length: 2717
Как вы можете видеть, клиентская программа explicity сказала серверу использовать http 1.0, но ответ инди-сервера был http 1.1.
РЕДАКТИРОВАТЬ:
Я понял, что лучшим решением является установка в событии OnCommandGet:
AResponseInfo.CloseConnection: = False;
AResponseInfo.Connection: = 'закрыть';
AResponseInfo.CloseConnection: = False заставляет сервер не отключаться от клиента, а Connection: = 'close' заставляет клиента отключаться от сервера, избегая серверов TIME_WAIT.