Network Working Group M. Nottingham
Internet-Draft Cloudflare
Intended status: Standards Track 23 February 2026
Expires: 27 August 2026
The Preliminary Request Denied HTTP Status Code
draft-nottingham-httpbis-pre-denied-00
Abstract
This specification defines a HTTP status code to indicate that the
server is denying a prefetch or preload request.
About This Document
This note is to be removed before publishing as an RFC.
Status information for this document may be found at
https://datatracker.ietf.org/doc/draft-nottingham-httpbis-pre-
denied/.
information can be found at https://mnot.github.io/I-D/.
Source for this draft and an issue tracker can be found at
https://github.com/mnot/I-D/labels/pre-denied.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 27 August 2026.
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
Nottingham Expires 27 August 2026 [Page 1]
Internet-Draft The Preliminary Request Denied HTTP Stat February 2026
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) 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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Notational Conventions . . . . . . . . . . . . . . . . . 3
2. The 4xx (Preliminary Request Denied) Status Code . . . . . . 3
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3
4. Security Considerations . . . . . . . . . . . . . . . . . . . 3
5. Normative References . . . . . . . . . . . . . . . . . . . . 3
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 4
1. Introduction
[FETCH] introduces a mechanism whereby HTTP [HTTP] user agents can
speculatively request a representation of a resource, in order to
improve perceived performance.
In some circumstances, a server might have information that leads it
to believe that sending a full response will not improve performance,
and could have negative impacts.
When this happens, it is common practice to use a 503 (Service
Unavailable) status code. However, this has been shown to cause
confusion: a server operator who sees a spike in that status code
being sent tends to draw the conclusion that there is a server-side
operational issue.
While other status codes (e.g., 403 (Forbidden)) could be used, they
can also suffer (to varying degrees) from the same problem: being
confused with an error, operational problem, or other condition.
This specification defines a new status code to specifically address
this situation.
Nottingham Expires 27 August 2026 [Page 2]
Internet-Draft The Preliminary Request Denied HTTP Stat February 2026
1.1. Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. The 4xx (Preliminary Request Denied) Status Code
The 4xx (Preliminary Request Denied) status code indicates that the
server is refusing a preliminary request.
A preliminary request is one that contains a Sec-Purpose header field
[FETCH] with the value "prefetch".
This indication is only applicable to the associated request; future
preliminary requests might or might not succeed.
3. IANA Considerations
The following entry should be registered in the "HTTP Status Codes"
registry:
* Code: 4xx
* Description: Preliminary Request Denied
* Specification: RFC nnnn (this document)
4. Security Considerations
The security considerations of [HTTP] and [FETCH] apply.
Conceivably, the use of this status code could leak information about
the internal state of the server; caution should be exercised to
assure that it does not.
5. Normative References
[FETCH] WHAT Working Group, "Fetch", 2026,
.
[HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022,
.
Nottingham Expires 27 August 2026 [Page 3]
Internet-Draft The Preliminary Request Denied HTTP Stat February 2026
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, .
Author's Address
Mark Nottingham
Cloudflare
Melbourne
Australia
Email: mnot@mnot.net
URI: https://www.mnot.net/
Nottingham Expires 27 August 2026 [Page 4]