RFC2616 part 4.4 specifies how the end of the message is determined in HTTP/1.1. Item 5 in that section specifies that the server may close the connection to indicate the response is finished.
В нем также говорится, что ограничение такого запроса невозможно. Тем не менее, TCP позволяет клиенту закрыть его конец и продолжить получать ответ. Я даже проверил это; оно работает.
Вопросов:
-
Почему стандарт 1999 года говорит, что это невозможно, когда это действительно возможно? TCP был хорошо установлен к тому времени и к тому времени поддерживал половину закрытия (возможно, с 1974 года).
-
Является ли это нарушением протокола для клиента, чтобы закрыть соединение, чтобы указать конец запроса?
Пожалуйста, не обращайте внимания на то, является ли это хорошей идеей: я знаю, как вы иногда не можете точно сказать, было ли соединение закрыто специально или просто сломалось, и как это имеет смысл, чтобы открыть соединение для повторного использования позже.