Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Talk about client half-close #431

Merged
merged 9 commits into from
Aug 14, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion draft-ietf-httpbis-messaging-latest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1194,11 +1194,18 @@ https://www.example.org
</ol>
<t>
Since there is no way to distinguish a successfully completed,
close-delimited message from a partially received message interrupted
close-delimited response message from a partially received message interrupted
by network failure, a server &SHOULD; generate encoding or
length-delimited messages whenever possible. The close-delimiting
feature exists primarily for backwards compatibility with HTTP/1.0.
</t>
<aside>
<t>
&Note; Request messages are never close-delimited because they are always
explicitly framed by length or transfer coding, with the absence of both implying
the request ends immediately after the header section.
</t>
</aside>
<t>
A server &MAY; reject a request that contains a message body but
not a <x:ref>Content-Length</x:ref> by responding with
Expand Down Expand Up @@ -1903,6 +1910,12 @@ https://www.example.org
It is unknown whether the reset problem is exclusive to TCP or might also
be found in other transport connection protocols.
</t>
<t>
Note that a TCP connection that is half-closed by the client does not
delimit a request message, nor does it imply that the client is no longer
interested in a response. In general, transport signals cannot be relied
upon to signal edge cases, since HTTP/1.1 is independent of transport.
</t>
</section>

<section title="TLS Connection Closure" anchor="tls.connection.closure">
Expand Down Expand Up @@ -3235,6 +3248,7 @@ https://www.example.org

<section title="Since draft-ietf-httpbis-messaging-10" anchor="changes.since.10">
<ul x:when-empty="None yet.">
<li>In <xref target="message.body.length"/>, note that TCP half-close does not delimit a request; talk about corresponding server-side behaviour in <xref target="persistent.tear-down"/> (<eref target="https://github.com/httpwg/http-core/issues/22"/>)</li>
<li>Moved requirements specific to HTTP/1.1 from <xref target="Semantics"/> into <xref target="request.target"/> (<eref target="https://github.com/httpwg/http-core/issues/182"/>)</li>
<li>In <xref target="field.transfer-encoding"/> (<x:ref>Transfer-Encoding</x:ref>), adjust ABNF to allow empty lists (<eref target="https://github.com/httpwg/http-core/issues/210"/>)</li>
<li>Moved definitions of "TE" and "Upgrade" into <xref target="Semantics"/> (<eref target="https://github.com/httpwg/http-core/issues/392"/>)</li>
Expand Down