Skip to content

Commit

Permalink
Add versioning and evolution
Browse files Browse the repository at this point in the history
Fixes #581
  • Loading branch information
mnot committed May 4, 2018
1 parent e1ce474 commit 2b1fcbe
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions draft-ietf-httpbis-bcp56bis.md
Expand Up @@ -822,6 +822,17 @@ Applications using server push directly need to enforce the requirements regardi
{{?RFC7540}}, Section 8.2, to avoid cross-origin push attacks.


## Versioning and Evolution {#versioning}

It's often necessary to introduce new features into application protocols, and change existing ones.

In HTTP, backwards-incompatible changes are possible using a number of mechanisms:

* Using a distinct link relation type {{!RFC8288}} to identify a URL for a resource that implements the new functionality
* Using a distinct media type {{!RFC6838}} to identify formats that enable the new functionality
* Using a distinct HTTP header field to implement new functionality outside the message body


# IANA Considerations

This document has no requirements for IANA.
Expand Down

4 comments on commit 2b1fcbe

@martinthomson
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aren't these backward-compatible techniques?

@mnot
Copy link
Member Author

@mnot mnot commented on 2b1fcbe May 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes are backwards-incompatible; if they were backwards-compatible, you could continue to use the existing URL / media type / header field.

@martinthomson
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, a new header field can be sent alongside the old one. Same for a new link relation. A new media type might be backwards compatible, depending on who sends it (a server responding might use Accept from the request).

@mnot
Copy link
Member Author

@mnot mnot commented on 2b1fcbe May 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note that I used the terminology "backwards-compatible changes", not "techniques".

Please sign in to comment.