📅  最后修改于: 2023-12-03 15:15:45.034000             🧑  作者: Mango
HTTP 标头 If-Unmodified-Since
可以用于在进行 PUT 或者 DELETE 操作时检查资源是否被修改过。它告诉服务器只有在资源自检请求时间以来未被修改才进行操作。
如果要在请求中添加 If-Unmodified-Since
标头,格式如下:
If-Unmodified-Since: <rfc1123-date>
其中 <rfc1123-date>
是上次修改时间或者其他已知时间,它使用以下格式:
ddd, dd mmm yyyy hh:mm:ss GMT
例如:
If-Unmodified-Since: Sat, 29 May 2021 16:06:13 GMT
假设我们有一个名为 /users/1
的资源表示一个用户:
{
"id": 1,
"name": "John Doe",
"email": "johndoe@example.com",
"createdAt": "2021-05-29T16:00:00Z",
"updatedAt": "2021-05-29T16:05:00Z"
}
现在我们想要更新这个用户的邮箱,因此我们向服务器发出一个 PUT 请求:
PUT /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
If-Unmodified-Since: Sat, 29 May 2021 16:05:00 GMT
{
"email": "newemail@example.com"
}
如果这个资源在 If-Unmodified-Since
指定的时间之后被修改了,服务器将返回一个 412 Precondition Failed
状态码。如果资源没有被修改,服务器将更新资源并返回一个 200 OK
状态码。
If-Unmodified-Since
标头只对单个资源操作有效。