200 OK
Verwendung
Eine 200-OK-Antwort enthält immer einen Nachrichtenrumpf, wobei es dem Server freisteht, dessen Länge auf null zu setzen. Je nach Server ist dies bei der Verarbeitung einer PUT-, DELETE- oder OPTIONS-Anfrage zu erwarten.
Wenn der Server keinen Inhalt zurückzugeben hat, ist der Statuscode 204 besser geeignet. Für Anfragen, die eine neue Ressource erzeugen, etwa ein POST, das Inhalte anlegt, wird stattdessen der Statuscode 201 zurückgegeben.
SEO-Auswirkung
Eine 200-Antwort übergibt den Inhalt an die Indexierungspipeline von Google, eine Indexierung ist damit jedoch nicht garantiert. Google bewertet den Inhalt und entscheidet eigenständig, ob die Seite in die Suchergebnisse aufgenommen wird. Eine 200-Antwort auf einer Seite, die mitteilt, dass Inhalte fehlen oder nicht mehr vorhanden sind, erzeugt einen Soft 404. Zu viele Soft 404s untergraben das Vertrauen von Google in die Serversignale der Website und wirken sich negativ auf die Rankings aus.
Hinweis
Die Entwicklerwerkzeuge des Browsers zeigen “200 (from disk cache)” oder “200 (from memory cache)” an, wenn die Antwort ohne Netzwerkanfrage aus dem lokalen Cache ausgeliefert wird. Das unterscheidet sich von einer vom Server gesendeten 200 (vollständiger Netzwerk-Roundtrip) und von 304 (der Server hat bestätigt, dass der Cache aktuell ist). “200 from cache” bedeutet, dass die max-age-Angabe von Cache-Control noch nicht abgelaufen ist, während 304 bedeutet, dass der Browser beim Server eine Neuvalidierung durchgeführt hat.
GET
Eine GET-Antwort enthält den Nachrichtenrumpf der angeforderten Ressource.
Anfrage
GET /document.pdf HTTP/1.1
Host: example.com
Antwort
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 10000
<message body contains the requested PDF document>
HEAD
Eine HEAD-Antwort enthält dieselben Header wie eine GET-Antwort, jedoch keinen Nachrichtenrumpf.
Anfrage
HEAD / HTTP/1.1
Host: example.com
Antwort
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
POST
Eine POST-Antwort enthält typischerweise Informationen über das Ergebnis der Aktion oder den Fortschrittsstatus.
Anfrage
POST /api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 24
{"name":"example entry"}
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"success":"true"}
PUT
Eine PUT-Antwort enthält typischerweise Informationen über das Ergebnis der Aktion oder den Fortschrittsstatus.
Anfrage
PUT /api/data/1 HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 24
{"name":"updated entry"}
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"success":"true"}
TRACE
Eine TRACE-Antwort enthält die Anfragenachricht so, wie der Server die Anfrage empfangen hat.
Anfrage
TRACE / HTTP/1.1
Host: example.com
Antwort
HTTP/1.1 200 OK
Content-Type: message/http
Content-Length: 38
TRACE / HTTP/1.1
Host: example.com
DELETE
Eine DELETE-Antwort enthält eine Statusangabe zur abgeschlossenen Aktion.
Anfrage
DELETE /api/data/1 HTTP/1.1
Host: example.com
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"deleted":"true"}
OPTIONS
Eine OPTIONS-Antwort enthält den Allow-Header, der die vom Server akzeptierten HTTP-Methoden auflistet. Optional gibt der Server weitere Details im Nachrichtenrumpf an.
Anfrage
OPTIONS / HTTP/1.1
Host: example.com
Antwort
HTTP/1.1 200 OK
Allow: GET,HEAD,PUT,OPTIONS
Content-Type: text/plain;charset=UTF-8
Code-Referenzen
.NET
HttpStatusCode.OK
Rust
http::StatusCode::OK
Rails
:ok
Go
http.StatusOK
Symfony
Response::HTTP_OK
Python3.5+
http.HTTPStatus.OK
Java
java.net.HttpURLConnection.HTTP_OK
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_OK
Angular
@angular/common/http/HttpStatusCode.Ok