| 624 | <section title="Message Orientation and Buffering" anchor="message-orientation-and-buffering"> |
| 625 | <t> |
| 626 | Fundamentally, HTTP is a message-based protocol. Although message bodies can |
| 627 | be chunked (<xref target="chunked.encoding"/>) and implementations often |
| 628 | make parts of a message available progressively, this is not required, and |
| 629 | some widely-used implementations only make a message available when it is |
| 630 | complete. Furthermore, while most proxies will progressively stream messages, |
| 631 | some amount of buffering will take place, and some proxies might buffer |
| 632 | messages to perform transformations, check content or provide other services. |
| 633 | </t> |
| 634 | <t> |
| 635 | Therefore, extensions to and uses of HTTP cannot rely on the availability of |
| 636 | a partial message, or assume that messages will not be buffered. There are |
| 637 | strategies that can be used to test for buffering in a given connection, but |
| 638 | it should be understood that behaviors can differ across connections, and |
| 639 | between requests and responses. |
| 640 | </t> |
| 641 | </section> |
| 642 | |