> Streaming HTTP responses is very important when downloading really large
files (e.g., Amazon S3 objects that are gigabytes). By forcing it into a
stream, you are forcing it into memory. I don't think there should be a
`getBodyAsString()` method though.

Correction: By forcing it into a _string_, you are forcing it into memory.

> Looking back at the various setters in the interface, I'm wondering if
they should be there at all.
> This goes back to my idea of allowing immutable implementations of the
various message objects.
> I don't see why setters would need to be implemented by libraries
adopting such a PSR.

Setters are actually pretty important in an HTTP message PSR. Consumers
should be able to modify requests pre-flight.

> Was there some kind of consensus on this?

No. I made this comment when this was first brought up, but nobody
responded:
https://github.com/php-fig/fig-standards/pull/72#issuecomment-11855434

    A large number of HTTP clients allow you to change a request pre-flight:

    * Guzzle: http://guzzlephp.org/guide/plugins.html
    * Buzz:
https://github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Listener/BasicAuthListener.php
    * Requests/PHP:
https://github.com/rmccue/Requests/blob/master/docs/hooks.md

    ... and then you can start listing a ton of other clients for other
languages:

    * Requests:
http://docs.python-requests.org/en/latest/user/advanced/#event-hooks
    * Typhoeus:
https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/request/before.rb
    * RestClient: https://github.com/archiloque/rest-client#hook
    * Java's HttpClient:
http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientGZipContentCompression.java
    * etc...

    Having mutable and immutable objects would add a large amount of
complexity to a HTTP message PSR, cause the final product to be very
inflexible, and would not reflect what is currently being used in the real
world by developers.

    Why is this important? If you really believe it is important, build
evidence around it. Provide a list of other popular HTTP libraries that
have a distinction between mutable and immutable request/response objects.

-Michael