[whatwg/fetch] Clarify relation to HTTP RFCs and similar (Issue #1700)

The standard does not specifies it's relation to the HTTP RFCs nor explicitly states what should be done in case of conflicts between the HTTP RFCs and the Fetch standard.

The fetch standard is stricter then the HTTP RFCs in several cases and e.g., dictates that a MAY is not to be implemented in browsers or that a SHOULD NOT is interpreted as a MUST NOT
- status code 300 MAY redirect according to [HTTP](https://datatracker.ietf.org/doc/html/rfc9110#section-15.4.1-2) but does not in [Fetch](https://fetch.spec.whatwg.org/#statuses)
- Bodies in GET request are SHOULD NOT unless in [HTTP](https://datatracker.ietf.org/doc/html/rfc9110#section-9.3.1-6) and not allowed by Fetch (e.g., #83)

The fetch standard currently refers to the HTTP RFCs several times:

> The goal is to unify fetching across the web platform and provide consistent handling of everything that involves, including: 
> ...
> To do so it also supersedes the HTTP `[Origin](https://fetch.spec.whatwg.org/#http-origin)` header semantics originally defined in The Web Origin Concept. [[ORIGIN]](https://fetch.spec.whatwg.org/#biblio-origin)

> This specification uses terminology from ABNF, Encoding, HTML, HTTP, MIME Sniffing, Streams, URL, Web IDL, and WebSockets. [[ABNF]](https://fetch.spec.whatwg.org/#biblio-abnf) [[ENCODING]](https://fetch.spec.whatwg.org/#biblio-encoding) [[HTML]](https://fetch.spec.whatwg.org/#biblio-html) [[HTTP]](https://fetch.spec.whatwg.org/#biblio-http) [[MIMESNIFF]](https://fetch.spec.whatwg.org/#biblio-mimesniff) [[STREAMS]](https://fetch.spec.whatwg.org/#biblio-streams) [[URL]](https://fetch.spec.whatwg.org/#biblio-url) [[WEBIDL]](https://fetch.spec.whatwg.org/#biblio-webidl) [[WEBSOCKETS]](https://fetch.spec.whatwg.org/#biblio-websockets)

> While [fetching](https://fetch.spec.whatwg.org/#concept-fetch) encompasses more than just HTTP, it borrows a number of concepts from HTTP and applies these to resources obtained via other means (e.g., data URLs).

The goal seems to indicate that Fetch is what browsers (should) implement and that contradictions with other specifications or options of other specifications do not matter. However, this is not made explicit and could confuse readers.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/1700
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/fetch/issues/1700@github.com>

Received on Wednesday, 20 September 2023 07:39:15 UTC