假设我正在设计一个 REST API,它应该返回一个经过身份验证的用户的联系人列表
e.g. /users/me/contacts
为了提高性能,我将返回一个 ETag 并在未来的 GET 请求中的 If-None-Match 标头中提供它。假设没有任何改变,那么 API 将返回一个 Not-Modified 响应。
但是,当联系人列表发生变化时会发生什么?我不想再次归还整个收藏品,只想归还新的和修改过的物品。
我可以发送一个 HEAD 请求,比较 ETag,然后为新项目发送一个后续 GET 请求,但这似乎有点浪费。
我刚刚遇到了 If-Range 标头,它看起来可以解决问题,但它似乎还需要以字节为单位的 Range 标头。
你认为 If-Range 标题是要走的路还是我错过了一些明显的东西?