Skip to content

Reason phrase #60

Closed
Closed

Description

@annevk

It would be good to clarify two things:

  1. Reason phrase is an optional part of the protocol and new wire formats must exclude it.
  2. When a wire format excludes it, (legacy) APIs must use the empty string for it.

I don't have tests for 2 unfortunately, but there's rough agreement in whatwg/fetch#599, including it seems from mnot, that it's a good approach.

Activity

  1. annevk commented on Apr 20, 2018

    @annevk
    ContributorAuthor

    I should mention that I got some pushback on 2 in https://bugzilla.mozilla.org/show_bug.cgi?id=1397646, though the alternative proposed does not strike me as ideal (leaving this undefined).

  2. reschke commented on Apr 20, 2018

    @reschke
    Contributor

    I don't think I agree with 1 or 2.

  3. annevk commented on Apr 20, 2018

    @annevk
    ContributorAuthor

    Care to elaborate?

  4. reschke commented on Apr 21, 2018

    @reschke
    Contributor
    1. It is optional, but I don't see why we would require it to be excluded from new formats.
    2. I also do not see why we would make API requirements.
  5. mnot commented on Jun 29, 2018

    @mnot
    Member

    I tend to agree that the HTTP spec shouldn't be making hard requirements for APIs or tying the hands of future versions of the protocol in this way. That said, clarifying the optionality and unreliability of the reason phrase would be good.

  6. annevk commented on Jul 20, 2018

    @annevk
    ContributorAuthor

    I don't really agree. It seems a lot better if it's not optional, but is instead always the empty string in H/2. Otherwise you get proxies inserting it and such.

  7. reschke commented on Jul 20, 2018

    @reschke
    Contributor

    What's the harm of proxies inserting something here?

    (FWIW: my choice would have been not to remove it in HTTP/2)

  8. mnot commented on Jul 20, 2018

    @mnot
    Member

    Because it's an attractive nuisance - applications think it's an end-to-end signal, and it's not.

  9. reschke commented on Jul 20, 2018

    @reschke
    Contributor

    It is, but I think the confusion we have caused by not having it in HTTP/2 far outweighs any potential benefit.

  10. mnot commented on Oct 10, 2018

    @mnot
    Member

    Even before H2, it wasn't reliable; some implementations overwrite whatever is put in there.

  11. mnot commented on Oct 10, 2018

    @mnot
    Member

    Currently in Messaging - Status Line:

    The reason-phrase element exists for the sole purpose of providing a textual description associated with the numeric status code, mostly out of deference to earlier Internet application protocols that were more frequently used with interactive text clients. A client should ignore the reason-phrase content.

    Suggest adding:

    ... A client should ignore the reason-phrase, because it is not transmitted in other versions of HTTP, and is overwritten by some HTTP/1.1 implementations. As such, it is not a reliable channel for information.

  12. reschke commented on Oct 10, 2018

    @reschke
    Contributor

    s/is not transmitted in other versions of HTTP/is not transmitted in some other versions of HTTP/

    Also, "should ignore" - is that a SHOULD. What does it mean. Is it allowed to display it?

  13. mnot commented on Oct 10, 2018

    @mnot
    Member

    +1 to the edit.

    Not intended to be a requirement. Ought (should?) we revert all of the "ought"s to "should" if we adopt RFC8174?

  14. reschke commented on Oct 10, 2018

    @reschke
    Contributor

    Not intended to be a requirement. Ought (should?) we revert all of the "ought"s to "should" if we adopt RFC8174?

    Not sure. Might be easier to stick to the approach we have.

  15. mnot commented on Oct 10, 2018

    @mnot
    Member

    Changing ought to should would allow us to escape from RFC6919's baleful glare...

  16. royfielding commented on Oct 10, 2018

    @royfielding
    Member

    Umm, it is already an existing requirement. Uppercase.

    A client SHOULD ignore the reason-phrase content.

    I would change it to

    A client SHOULD ignore the reason-phrase content because it is not a reliable channel for information (it might be discarded or overwritten by intermediaries).

  17. mnot commented on Oct 10, 2018

    @mnot
    Member

    WFM.

  18. added a commit that references this issue on Oct 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions