200 OK
Uso
Una respuesta 200 OK siempre incluye un cuerpo de mensaje, aunque el servidor es libre de fijar su longitud en cero. Según el servidor, esto es lo habitual al procesar una solicitud PUT, DELETE u OPTIONS.
Cuando el servidor no tiene contenido que devolver, el código de estado 204 resulta más apropiado. Para las solicitudes que crean un recurso nuevo, como un POST que crea contenido, se devuelve en su lugar un código de estado 201.
Impacto en SEO
Una respuesta 200 pasa el contenido al proceso de indexación de Google, pero la indexación no está garantizada. Google evalúa el contenido y decide de forma independiente si incluye la página en los resultados de búsqueda. Una respuesta 200 en una página que indica que el contenido falta o ha desaparecido genera un soft 404. Demasiados soft 404 erosionan la confianza de Google en las señales del servidor del sitio y perjudican el posicionamiento.
Nota
Las herramientas de desarrollo del navegador muestran “200 (from disk cache)” o “200 (from memory cache)” cuando la respuesta se sirve desde la caché local sin una solicitud de red. Esto es distinto de un 200 enviado por el servidor (ida y vuelta completa por la red) y de un 304 (el servidor confirma que la caché está vigente). “200 from cache” significa que el max-age de Cache-Control aún no ha expirado, mientras que un 304 significa que el navegador revalidó con el servidor.
GET
Una respuesta GET contiene el cuerpo de mensaje del recurso solicitado.
Solicitud
GET /document.pdf HTTP/1.1
Host: example.com
Respuesta
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 10000
<message body contains the requested PDF document>
HEAD
Una respuesta HEAD contiene las mismas cabeceras que una respuesta GET, sin cuerpo de mensaje.
Solicitud
HEAD / HTTP/1.1
Host: example.com
Respuesta
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
POST
Una respuesta POST contiene normalmente información sobre el resultado de la acción o sobre el estado de progreso.
Solicitud
POST /api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 24
{"name":"example entry"}
Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"success":"true"}
PUT
Una respuesta PUT contiene normalmente información sobre el resultado de la acción o sobre el estado de progreso.
Solicitud
PUT /api/data/1 HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 24
{"name":"updated entry"}
Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"success":"true"}
TRACE
Una respuesta TRACE contiene el mensaje de solicitud tal como lo recibió el servidor.
Solicitud
TRACE / HTTP/1.1
Host: example.com
Respuesta
HTTP/1.1 200 OK
Content-Type: message/http
Content-Length: 38
TRACE / HTTP/1.1
Host: example.com
DELETE
Una respuesta DELETE incluye una indicación del estado de la acción completada.
Solicitud
DELETE /api/data/1 HTTP/1.1
Host: example.com
Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"deleted":"true"}
OPTIONS
Una respuesta OPTIONS incluye la cabecera Allow, que enumera los métodos HTTP que acepta el servidor. De forma opcional, el servidor indica más detalles en el cuerpo del mensaje.
Solicitud
OPTIONS / HTTP/1.1
Host: example.com
Respuesta
HTTP/1.1 200 OK
Allow: GET,HEAD,PUT,OPTIONS
Content-Type: text/plain;charset=UTF-8
Referencias de código
.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