200 OK
用法
200 OK 响应总是包含一个消息体,尽管服务器可以自由地将消息体长度设为零。视具体服务器而定,在处理 PUT、DELETE 或 OPTIONS 请求时通常会如此。
当服务器没有内容可返回时,使用 204 状态码更为合适。对于创建新资源的请求(例如通过 POST 创建内容),则应返回 201 状态码。
SEO 影响
200 响应会将内容传入 Google 的索引流程,但不保证一定被索引。Google 会评估内容并独立决定是否将该页面纳入搜索结果。若某个提示内容缺失或已不存在的页面仍返回 200 响应,就会产生软 404。过多的软 404 会削弱 Google 对该站点服务器信号的信任,并对排名产生负面影响。
注意
当响应从本地缓存提供、未发起网络请求时,浏览器开发者工具会显示 “200 (from disk cache)” 或 “200 (from memory cache)“。这不同于服务器发送的 200(完整网络往返),也不同于 304(服务器确认缓存为最新)。“200 from cache” 意味着 Cache-Control 的 max-age 尚未过期,而 304 则意味着浏览器已与服务器完成重新验证。
GET
GET 响应包含所请求资源的消息体。
请求
GET /document.pdf HTTP/1.1
Host: example.com
响应
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 10000
<message body contains the requested PDF document>
HEAD
HEAD 响应包含与 GET 响应相同的请求头,但没有消息体。
请求
HEAD / HTTP/1.1
Host: example.com
响应
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
POST
POST 响应通常包含关于该动作执行结果的信息或进度状态。
请求
POST /api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 24
{"name":"example entry"}
响应
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"success":"true"}
PUT
PUT 响应通常包含关于该动作执行结果的信息或进度状态。
请求
PUT /api/data/1 HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 24
{"name":"updated entry"}
响应
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"success":"true"}
TRACE
TRACE 响应包含服务器收到请求时的请求消息本身。
请求
TRACE / HTTP/1.1
Host: example.com
响应
HTTP/1.1 200 OK
Content-Type: message/http
Content-Length: 38
TRACE / HTTP/1.1
Host: example.com
DELETE
DELETE 响应包含已完成动作的状态标识。
请求
DELETE /api/data/1 HTTP/1.1
Host: example.com
响应
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18
{"deleted":"true"}
OPTIONS
OPTIONS 响应包含 Allow 请求头,列出服务器接受的 HTTP 方法。服务器还可以选择在消息体中提供进一步的细节。
请求
OPTIONS / HTTP/1.1
Host: example.com
响应
HTTP/1.1 200 OK
Allow: GET,HEAD,PUT,OPTIONS
Content-Type: text/plain;charset=UTF-8
代码参考
.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