¿Cómo usar NSURLSession para determinar si el recurso ha cambiado?
Estoy usando NSURLSession para solicitar un recurso JSON de un servidor HTTP. El servidor usa Cache-Control para limitar el tiempo que el recurso se almacena en caché en los clientes.
Esto funciona muy bien, pero también me gustaría almacenar en caché un objeto JSON deserializado en la memoria, ya que se accede con bastante frecuencia, sin dejar de aprovechar los mecanismos de almacenamiento en caché HTTP integrados en NSURLSession.
Estoy pensando que puedo guardar algunos encabezados de respuesta HTTP:Content-MD5
, Etag
yLast-Modified
junto con el objeto JSON deserializado (estoy usando esos 3 campos ya que noté que no todos los servidores HTTP regresanContent-MD5
, de lo contrario, eso sería suficiente por sí mismo). La próxima vez que reciba una respuesta para el objeto JSON, si esos 3 campos son iguales, entonces puedo reutilizar el objeto JSON previamente deserializado.
¿Es esta una forma sólida de determinar que el JSON deserizlied sigue siendo válido? Si no, ¿cómo determino si el objeto deserializado está actualizado?