<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-httpapi-deprecation-header-latest" number="9745" updates="" obsoletes="" submissionType="IETF" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" xml:lang="en" prepTime="2025-03-17T03:59:11" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-httpapi-deprecation-header-latest" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9745" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title>The Deprecation HTTP Response Header Field</title>
    <seriesInfo name="RFC" value="9745" stream="IETF"/>
    <author initials="S." surname="Dalal" fullname="Sanjay Dalal">
      <address>
        <email>sanjay.dalal@cal.berkeley.edu</email>
        <uri>https://github.com/sdatspun2</uri>
      </address>
    </author>
    <author initials="E." surname="Wilde" fullname="Erik Wilde">
      <address>
        <email>erik.wilde@dret.net</email>
        <uri>http://dret.net/netdret</uri>
      </address>
    </author>
    <date month="03" year="2025"/>
    <area>WIT</area>
    <workgroup>httpapi</workgroup>
    <keyword>HTTP</keyword>
    <keyword>deprecation</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">The Deprecation HTTP response header field is used to signal
    to consumers of a resource (identified by a URI) that the resource will be
    or has been deprecated. Additionally, the <tt>deprecation</tt> link relation can be
    used to link to a resource that provides further information about planned
    or existing deprecation. It may also provide ways in which client
    application developers can best manage deprecation.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9745" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-notational-conventions">Notational Conventions</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-deprecation-http-respon">The Deprecation HTTP Response Header Field</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-syntax">Syntax</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-scope">Scope</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-deprecation-link-relati">The <tt>Deprecation</tt> Link Relation Type</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-documentation">Documentation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sunset">Sunset</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-resource-behavior">Resource Behavior</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-deprecation-http-respons">The Deprecation HTTP Response Header Field</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-deprecation-link-relatio">The <tt>Deprecation</tt> Link Relation Type</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Deprecation of an HTTP resource (<xref section="3.1" sectionFormat="of" target="RFC9110" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-3.1" derivedContent="HTTP"/>) communicates information about the lifecycle of a resource. It encourages client applications to migrate away from the resource, discourages applications from forming new dependencies on the resource, and informs applications about the risk of continued dependence upon the resource.</t>
      <t indent="0" pn="section-1-2">The act of deprecation does not change any behavior of the resource. It informs client applications of the fact that a resource will be or has been deprecated. The Deprecation HTTP response header field can be used to convey this information at runtime and indicate when the deprecation will be in effect.</t>
      <t indent="0" pn="section-1-3">In addition to the <tt>Deprecation</tt> header field, the resource provider can use other header fields such as the <tt>Link</tt> header field <xref target="RFC8288" format="default" sectionFormat="of" derivedContent="LINK"/> to convey additional information related to deprecation. This can be information such as where to find documentation related to the deprecation, what can be used as a replacement, and when a deprecated resource becomes non-operational.</t>
      <section anchor="requirements-language" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-notational-conventions">Notational Conventions</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>
        <t indent="0" pn="section-1.1-2">This document uses "<xref target="RFC9651" format="title" sectionFormat="of" derivedContent="Structured Field Values for HTTP"/>" <xref target="RFC9651" format="default" sectionFormat="of" derivedContent="RFC9651"/> to specify syntax and parsing of date values.</t>
        <t indent="0" pn="section-1.1-3">The term "resource" is to be interpreted as defined in <xref section="3.1" sectionFormat="of" target="RFC9110" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-3.1" derivedContent="HTTP"/>.</t>
      </section>
    </section>
    <section anchor="the-deprecation-http-response-header-field" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-the-deprecation-http-respon">The Deprecation HTTP Response Header Field</name>
      <t indent="0" pn="section-2-1">The <tt>Deprecation</tt> HTTP response header field allows a server to communicate to a client application that the resource in the context of the message will be or has been deprecated.</t>
      <section anchor="syntax" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-syntax">Syntax</name>
        <t indent="0" pn="section-2.1-1">The <tt>Deprecation</tt> HTTP response header field describes the deprecation of the resource identified with the response it occurred within (see <xref section="6.4.2" sectionFormat="of" target="RFC9110" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-6.4.2" derivedContent="HTTP"/>). It conveys the deprecation date, which may be in the future (the resource in context will be deprecated at that date) or in the past (the resource in context was deprecated at that date).</t>
        <t indent="0" pn="section-2.1-2"><tt>Deprecation</tt> is an Item Structured Header Field; its value <bcp14>MUST</bcp14> be a Date as per <xref section="3.3.7" sectionFormat="of" target="RFC9651" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9651#section-3.3.7" derivedContent="RFC9651"/>.</t>
        <t indent="0" pn="section-2.1-3">The following example shows that the resource in context was deprecated on Friday, June 30, 2023 at 23:59:59 UTC:</t>
        <artwork align="left" pn="section-2.1-4">
Deprecation: @1688169599
</artwork>
      </section>
      <section anchor="scope" numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-scope">Scope</name>
        <t indent="0" pn="section-2.2-1">The <tt>Deprecation</tt> header field applies to the resource identified with the response it occurred within (see <xref section="6.4.2" sectionFormat="of" target="RFC9110" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-6.4.2" derivedContent="HTTP"/>), meaning that it announces the upcoming deprecation of that specific resource. However, there may be scenarios where the scope of the announced deprecation is larger than just the single resource where it appears.</t>
        <t indent="0" pn="section-2.2-2">Resources are free to define such an increased scope, and usually this scope will be documented by the resource so that consumers of the resource know about the increased scope and can behave accordingly. When doing so, it is important to take into account that such increased scoping is invisible for consumers who are unaware of the increased scoping rules. This means that these consumers will not be aware of the increased scope, and they will not interpret deprecation-related information differently from its standard meaning (i.e., it applies to the resource only).</t>
        <t indent="0" pn="section-2.2-3">Using such an increased scope still may make sense, as deprecation-related information is only a hint anyway. It is optional information that cannot be depended on, and client applications should always be implemented in ways that allow them to function without deprecation-related information. Increased scope information may help client application developers to glean additional hints from related resources and thus might allow them to implement behavior that enables them to make educated guesses about resources becoming deprecated.</t>
        <t indent="0" pn="section-2.2-4">For example, an API might not use <tt>Deprecation</tt> header fields on all of its resources but only on designated resources such as the API's home document. This means that deprecation-related information is available, but in order to get it, client application developers have to periodically inspect the home document. In this example, the extended context of the <tt>Deprecation</tt> header field would be all resources provided by the API, while the visibility of the information would only be on the home document.</t>
      </section>
    </section>
    <section anchor="the-deprecation-link-relation-type" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-the-deprecation-link-relati">The <tt>Deprecation</tt> Link Relation Type</name>
      <t indent="0" pn="section-3-1">In addition to the Deprecation HTTP response header field, the server can use links with the <tt>deprecation</tt> link relation type to communicate to the client application developer where to find more information about deprecation of the context. This can happen before the actual deprecation to make a deprecation policy discoverable or after deprecation when there may be documentation about the deprecation and how to manage it.</t>
      <t indent="0" pn="section-3-2">This specification places no restrictions on the representation of the linked deprecation policy. In particular, the deprecation policy may be available as human-readable documentation or as a machine-readable description.</t>
      <section anchor="documentation" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-documentation">Documentation</name>
        <t indent="0" pn="section-3.1-1">The purpose of the <tt>Deprecation</tt> header field is to provide a hint about deprecation to the resource consumer. Upon reception of the <tt>Deprecation</tt> header field, the client application developer can look up the resource's documentation in order to find deprecation-related information. The documentation <bcp14>MAY</bcp14> provide a guide and timeline for migrating away from the deprecated resource to a new resource(s) that replaces the deprecated resource, if applicable. The resource provider can provide a link to the resource's documentation using a <tt>Link</tt> header field with the relation type <tt>deprecation</tt> as shown below:</t>
        <artwork align="left" pn="section-3.1-2">
Link: &lt;https://developer.example.com/deprecation&gt;;
      rel="deprecation"; type="text/html"
</artwork>
        <t indent="0" pn="section-3.1-3">In this example, the linked content provides additional information about
deprecation of the resource in context. There is no <tt>Deprecation</tt> header field in
the response; thus, the resource is not (yet) deprecated. However, the
resource already exposes a link where information describing how deprecation
is managed for the resource is available.  This may be the documentation
explaining the circumstances in which deprecation might take place and the
deprecation policies.  For example, a policy may indicate that deprecation of
a resource(s) will always be signaled in the dedicated places at least N days
ahead of the planned deprecation date and then the resource(s) would be
deprecated on the planned date. Or a policy may indicate that the resource(s)
would be deprecated first and then be signaled as deprecated at dedicated
places. The documentation, in addition to the deprecation policy, may also
provide a migration guide explaining to consumers of the resource how to
migrate to a new or alternate resource(s) before the deprecation date. Such
policy and documentation would be very useful to consumers of the resource to
plan ahead and migrate successfully.</t>
        <t indent="0" pn="section-3.1-4">The following example uses the same <tt>Link</tt> header field but also announces a deprecation date using a <tt>Deprecation</tt> header field:</t>
        <artwork align="left" pn="section-3.1-5">
Deprecation: @1688169599
Link: &lt;https://developer.example.com/deprecation&gt;;
      rel="deprecation"; type="text/html"
</artwork>
        <t indent="0" pn="section-3.1-6">Given that the deprecation date is in the past, the linked information resource may have been updated to include information about the deprecation, allowing consumers to discover information about the deprecation and how to best manage it.</t>
      </section>
    </section>
    <section anchor="sunset" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-sunset">Sunset</name>
      <t indent="0" pn="section-4-1">In addition to the deprecation-related information, if the resource provider wants to convey to the client application that the deprecated resource is expected to become unresponsive at a specific point in time, the <tt>Sunset</tt> HTTP header field <xref target="RFC8594" format="default" sectionFormat="of" derivedContent="RFC8594"/> can be used in addition to the <tt>Deprecation</tt> header field.</t>
      <t indent="0" pn="section-4-2">The timestamp given in the <tt>Sunset</tt> HTTP header field <bcp14>MUST NOT</bcp14> be earlier than the one given in the <tt>Deprecation</tt> header field. If that happens (for example, due to misconfiguration of deployment of the resource or an error), the client application developer <bcp14>SHOULD</bcp14> consult the resource developer to get clarification.</t>
      <t indent="0" pn="section-4-3">The following example shows that the resource in context was deprecated on Friday, June 30, 2023 at 23:59:59 UTC and its sunset date is Sunday, June 30, 2024 at 23:59:59 UTC. Please note that for historical reasons the <tt>Sunset</tt> HTTP header field uses a different data format for date.</t>
      <artwork align="left" pn="section-4-4">
Deprecation: @1688169599
Sunset: Sun, 30 Jun 2024 23:59:59 UTC
</artwork>
    </section>
    <section anchor="resource-behavior" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-resource-behavior">Resource Behavior</name>
      <t indent="0" pn="section-5-1">The act of deprecation does not change any behavior of the resource.
      The presence of a <tt>Deprecation</tt> header field in a response is not meant to
      signal a change in the meaning or function of a resource in the context;
      consumers can still use the resource in the same way as they did before
      the resource was declared deprecated.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="the-deprecation-http-response-header-field-1" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-the-deprecation-http-respons">The Deprecation HTTP Response Header Field</name>
        <t indent="0" pn="section-6.1-1">The <tt>Deprecation</tt> HTTP response header field has been added to the "Hypertext Transfer Protocol (HTTP) Field Name Registry" (<xref section="16.3.1" sectionFormat="of" target="RFC9110" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-16.3.1" derivedContent="HTTP"/>) as follows:</t>
        <dl newline="false" indent="3" spacing="normal" pn="section-6.1-2">
          <dt pn="section-6.1-2.1">Field Name:</dt>
          <dd pn="section-6.1-2.2">Deprecation</dd>
          <dt pn="section-6.1-2.3">Status:</dt>
          <dd pn="section-6.1-2.4">permanent</dd>
          <dt pn="section-6.1-2.5">Structured Type:</dt>
          <dd pn="section-6.1-2.6">Item</dd>
          <dt pn="section-6.1-2.7">Reference:</dt>
          <dd pn="section-6.1-2.8">RFC 9745, <xref target="the-deprecation-http-response-header-field" format="default" sectionFormat="of" derivedContent="Section 2"/>: The Deprecation HTTP Response Header Field</dd>
        </dl>
      </section>
      <section anchor="the-deprecation-link-relation-type-1" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-the-deprecation-link-relatio">The <tt>Deprecation</tt> Link Relation Type</name>
        <t indent="0" pn="section-6.2-1">The <tt>deprecation</tt> link relation type has been added to the "Link Relation Types" registry (<xref section="4.2" sectionFormat="of" target="RFC8288" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8288#section-4.2" derivedContent="LINK"/>) as follows:</t>
        <dl newline="false" indent="3" spacing="normal" pn="section-6.2-2">
          <dt pn="section-6.2-2.1">Relation Name:</dt>
          <dd pn="section-6.2-2.2">deprecation</dd>
          <dt pn="section-6.2-2.3">Description:</dt>
          <dd pn="section-6.2-2.4">Refers to documentation (intended for human consumption) about the deprecation of the link's context.</dd>
          <dt pn="section-6.2-2.5">Reference:</dt>
          <dd pn="section-6.2-2.6">RFC 9745, <xref target="the-deprecation-link-relation-type" format="default" sectionFormat="of" derivedContent="Section 3"/></dd>
        </dl>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">The <tt>Deprecation</tt> header field should be treated as a hint, meaning that the resource is indicating (but not guaranteeing with certainty) that it will be or has been deprecated. Deprecated resources function as they would have without sending the <tt>Deprecation</tt> header field, even though non-functional details may be affected (e.g., they have less efficiency and longer response times).</t>
      <t indent="0" pn="section-7-2">The resource's documentation should provide additional information about the deprecation, such as recommendations for replacement. Developers of client applications consuming the resource <bcp14>SHOULD</bcp14> always check the referred resource's documentation to verify authenticity and accuracy. In cases where a <tt>Link</tt> header field is used to provide documentation, one should assume (unless served over HTTPS) that the content of the <tt>Link</tt> header field may not be secure, private, or integrity-guaranteed, so due caution should be exercised when using it (see <xref section="5" sectionFormat="of" target="RFC8288" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8288#section-5" derivedContent="LINK"/> for more details). In cases where the <tt>Deprecation</tt> header field value is in the past, the client application developers <bcp14>MUST</bcp14> no longer assume that the behavior of the resource will remain the same as before the deprecation date. In cases where the <tt>Deprecation</tt> header field value is a date in the future, it informs client application developers about the effective date in the future for deprecation. Therefore, client application developers consuming the resource <bcp14>SHOULD</bcp14>, if possible, consult the resource developer to discuss potential impact due to deprecation and plan for possible transition to a recommended resource(s).</t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9110" to="HTTP"/>
    <displayreference target="RFC8288" to="LINK"/>
    <references anchor="sec-normative-references" pn="section-8">
      <name slugifiedName="name-normative-references">Normative References</name>
      <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110" quoteTitle="true" derivedAnchor="HTTP">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t indent="0">The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t indent="0">This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="RFC8288" target="https://www.rfc-editor.org/info/rfc8288" quoteTitle="true" derivedAnchor="LINK">
        <front>
          <title>Web Linking</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <date month="October" year="2017"/>
          <abstract>
            <t indent="0">This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
            <t indent="0">It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8288"/>
        <seriesInfo name="DOI" value="10.17487/RFC8288"/>
      </reference>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC8594" target="https://www.rfc-editor.org/info/rfc8594" quoteTitle="true" derivedAnchor="RFC8594">
        <front>
          <title>The Sunset HTTP Header Field</title>
          <author fullname="E. Wilde" initials="E." surname="Wilde"/>
          <date month="May" year="2019"/>
          <abstract>
            <t indent="0">This specification defines the Sunset HTTP response header field, which indicates that a URI is likely to become unresponsive at a specified point in the future. It also defines a sunset link relation type that allows linking to resources providing information about an upcoming resource or service sunset.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8594"/>
        <seriesInfo name="DOI" value="10.17487/RFC8594"/>
      </reference>
      <reference anchor="RFC9651" target="https://www.rfc-editor.org/info/rfc9651" quoteTitle="true" derivedAnchor="RFC9651">
        <front>
          <title>Structured Field Values for HTTP</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
          <date month="September" year="2024"/>
          <abstract>
            <t indent="0">This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
            <t indent="0">This document obsoletes RFC 8941.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9651"/>
        <seriesInfo name="DOI" value="10.17487/RFC9651"/>
      </reference>
    </references>
    <section anchor="acknowledgments" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank <contact fullname="Nikhil Kolekar"/>,
      <contact fullname="Darrel Miller"/>, <contact fullname="Mark       Nottingham"/>, and <contact fullname="Roberto Polli"/> for their
      contributions.</t>
      <t indent="0" pn="section-appendix.a-2">The authors take all responsibility for errors and omissions.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="S." surname="Dalal" fullname="Sanjay Dalal">
        <address>
          <email>sanjay.dalal@cal.berkeley.edu</email>
          <uri>https://github.com/sdatspun2</uri>
        </address>
      </author>
      <author initials="E." surname="Wilde" fullname="Erik Wilde">
        <address>
          <email>erik.wilde@dret.net</email>
          <uri>http://dret.net/netdret</uri>
        </address>
      </author>
    </section>
  </back>
</rfc>
