Я переношу простой набор инструментов с python 2.7 на 3.5, а один из инструментов - простой веб-сервер с использованием web.py.Как закрыть соединение
К сожалению, web.py недоступен для 3.5, но для этого я переключился на bottle.py.
Согласно спецификации интерфейса я создаю мне нужно, чтобы закрыть соединение, которое я могу сделать довольно легко в web.py, добавив следующую строку:
web.header('Connection', 'close')
Но используя бутылку я получаю ошибка, что хмель-на-хоп заголовки не допускается, когда я делаю следующее:
response.add_header('Connection', 'close')
Как добавить этот заголовок в ответ так или иначе? Я прочитал документацию о бутылках, обыскал в Интернете и просмотрел код бутылки.
Бутылка - это структура WSGI, а протокол [WSGI] (https://www.python.org/dev/peps/pep-0333/) явно запрещает устанавливать заголовки переходов по ходу: 'Приложения и промежуточное программное обеспечение запрещено использовать функции HTTP/1.1 "hop-by-hop" или заголовки. Возможно, вы можете убедить сервер http установить заголовок. Но вы уверены, что вам нужно установить это вручную, не должен ли сервер http уже иметь дело с этим? Или это какой-то пользовательский протокол HTTP, с которым вы имеете дело? – syntonym
Это на самом деле объясняет довольно много. Но мне нужно отправить Connection: закрыть в заголовке клиенту по той причине, что некоторые клиенты не обрабатывают ответ в противном случае. –
Вы используете встроенный сервер разработки бутылок? Вероятно, вы должны использовать это только для разработки. – syntonym