Accept header
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Der HTTP-Accept-Request- und Response-Header gibt an, welche Inhaltstypen, ausgedrückt als MIME-Typen, der Sender verstehen kann.
In Requests verwendet der Server Content Negotiation, um einen der Vorschläge auszuwählen, und informiert den Client mit dem Response-Header Content-Type über die Auswahl.
In Responses enthält er Informationen darüber, welche Inhaltstypen der Server in Nachrichten an die angeforderte Ressource verstehen kann, sodass der Inhaltstyp in nachfolgenden Requests an die Ressource verwendet werden kann.
Browser legen die erforderlichen Werte für diesen Header anhand des Kontexts des Requests fest. Beispielsweise verwendet ein Browser in einem Request unterschiedliche Werte, wenn er ein CSS-Stylesheet, ein Bild, ein Video oder ein Script abruft.
| Header-Typ | Request-Header, Response-Header |
|---|---|
| Verbotener Request-Header | Nein |
| CORS-safelisted Request-Header | Ja* |
* Werte dürfen keine CORS-unsicheren Request-Header-Bytes enthalten, einschließlich "():<>?@[\]{},, Delete 0x7F und Steuerzeichen von 0x00 bis 0x19, mit Ausnahme von Tab 0x09.
Syntax
Accept: <media-type>/<MIME_subtype>
Accept: <media-type>/*
Accept: */*
// Multiple types, weighted with the quality value syntax
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8
Direktiven
<media-type>/<subtype>-
Ein einzelner, präziser Medientyp, wie
text/html. <media-type>/*-
Ein Medientyp ohne Subtyp. Beispielsweise entspricht
image/*den Typenimage/png,image/svg,image/gifund anderen Bildtypen. */*-
Jeder Medientyp.
;q=(q-Faktor-Gewichtung)-
Ein Wert für die Reihenfolge der Präferenz, ausgedrückt durch einen relativen Qualitätswert, der als Gewichtung bezeichnet wird.
Beispiele
>Standardmäßige Accept-Request-Header verwenden
HTTP-Requests, die mit Befehlszeilentools wie curl und wget erstellt werden, verwenden */* als standardmäßigen Accept-Wert:
GET / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
Browser-Navigationen haben typischerweise den folgenden Accept-Request-Header-Wert:
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
…
Nach dem Empfang des Dokuments sehen die standardmäßigen Accept-Werte in Requests für Bilder im developer.mozilla.org-Beispiel wie folgt aus:
Accept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5
Accept-Request-Header für JSON-Responses konfigurieren
Systeme mit API-Interaktion fordern häufig application/json-Responses an.
Hier ist ein Beispiel für einen GET-Request, bei dem der Client ausdrücklich eine JSON-Response anfordert:
GET /users/123 HTTP/1.1
Host: example.com
Authorization: Bearer abcd123
Accept: application/json
Spezifikationen
| Spezifikation |
|---|
| HTTP Semantics> # field.accept> |
Browser-Kompatibilität
Siehe auch
- HTTP-Content Negotiation
- Liste der standardmäßigen Accept-Werte
- Einschränkungen für CORS-safelisted Request-Header
- Ein Header mit dem Ergebnis der Content Negotiation:
Content-Type - Weitere ähnliche Header:
TE,Accept-Encoding,Accept-Language