在iOS中缓存http响应

在iOS中缓存http响应,ios,caching,Ios,Caching,我正在启动一个使用Restful API的iOS应用程序。 我可以控制那个API,我对缓存策略感到困惑 首先,我只需要缓存一个具体的资源,但问题是,当我在数据库中插入新记录时,资源可能会发生变化 那么,我怎样才能告诉应用程序嘿!仅当有更改时才发出请求,如果没有更改,则从缓存中获取数据 我正在使用AFNetworking发出请求。您必须在服务器端或客户端做出决定,并构建自己的协议 例如: 您可以发送服务器JSON post请求,其中包含应用程序中数据的“版本”。在服务器端,您将在每次刷新数据时增加

我正在启动一个使用Restful API的iOS应用程序。 我可以控制那个API,我对缓存策略感到困惑

首先,我只需要缓存一个具体的资源,但问题是,当我在数据库中插入新记录时,资源可能会发生变化

那么,我怎样才能告诉应用程序嘿!仅当有更改时才发出请求,如果没有更改,则从缓存中获取数据


我正在使用AFNetworking发出请求。

您必须在服务器端或客户端做出决定,并构建自己的协议

例如: 您可以发送服务器JSON post请求,其中包含应用程序中数据的“版本”。在服务器端,您将在每次刷新数据时增加版本号。如果服务器端的版本号不匹配,服务器将用所有新数据响应,否则服务器将用“最新”响应JSON

编辑:
如果您正在寻找HTTP响应。这是在服务器端完成的。你必须实施

您正在请求数据,并且您只想在远程应用程序上的数据发生更改时发出请求?应用程序如何知道是否有任何变化?确切地说,这是我想要的,但我不知道如何做到这一点!:不幸的是,这是不可能的。客户端无法神奇地知道服务器上的情况是否发生了变化。您可以让客户端跟踪上次请求(如ETag或上次修改)中的头值。然后,服务器可以检查这一点,这样就不必发回完整的响应。但是,如果客户端没有以某种方式与服务器通信,就不可能知道数据是否已更改。回答得好!我会调查上次修改的参数!我的目的是避免做一个请求,如果它不是必要的,也许这是不可能的。。。