美文网首页
Http GET请求缓存问题

Http GET请求缓存问题

作者: 字节码 | 来源:发表于2019-08-17 20:55 被阅读0次

GET 缓存导致的问题

在iOS 客户端通过AFNetworking 发起 GET 方式的HTTP请求时,导致数据始终不是最新的,即使断开网络连接,依旧能获取到response,原因就是其对GET 方式进行了缓存。

HTTP缓存

HTTP缓存的基本目的就是使应用执行的更快,更易扩展,但是HTTP缓存通常只适用于idempotent request(可以理解为查询请求,也就是不更新服务端数据的请求),这也就导致了在HTTP的世界里,一般都是对GET请求做缓存,POST请求很少有缓存。

GET多用来直接获取数据,不修改数据,主要目的就是database的search语句的感觉。用缓存(有个代理服务器的概念)的目的就是查db的速度变快。

POST则是发送数据到服务器端去存储。类似db里的update delete和insert语句的感觉。更新db的意思。数据必须放在数据库,所以一般都得去访问服务器端,而极少需要缓存。

解决GET 缓存的七种方式

  • 1.服务端处理,在response的 header 中添加@{@"Cache-Control": @"no-cache, must-reva lidate"};

  • 2.客户端在header中添加@{@"If-Modified-Since": @"0"}

  • 3.客户端在header中添加@{@"Cache-Control": @"no-cache"}

  • 4.客户端在GET请求的url中添加参数@{@"timestamp": @([[NSDate date] timeIntervalSince1970]}

  • 6.用POSET替换GET请求

  • 7.iOS 可以通过使用[NSURLSessionConfiguration ephemeralSessionConfiguration]忽略缓存,如果使用的基于NSURLSession的网络请求,比如AFNetworking:

// 忽略缓存
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration ephemeralSessionConfiguration];
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:config];

推荐使用第4种或第7种方式

相关文章

  • Http GET请求缓存问题

    GET 缓存导致的问题 在iOS 客户端通过AFNetworking 发起 GET 方式的HTTP请求时,导致数据...

  • iOS 网络缓存

    常见的网络数据缓存方式 GET网络请求缓存 概述 首先要知道,POST请求不能被缓存,只有 GET 请求能被缓存。...

  • 面试题:在浏览器中输入URL到页面渲染的整个过程2020-04-

    构建请求行GET / HTTP/1.1方法 请求路径 请求的协议/版本复制代码查找强缓存检查资源是否...

  • 每日一点前端面试题

    Ajax请求的时候GET和POST的区别? GET大小限制,安全低,POST则相反; GET请求需考虑缓存问题,P...

  • http缓存过程

    注:http 缓存只能缓存 get 方式请求的资源浏览器缓存分 强制缓存 和 协商缓存 ,分别使用的字段前者是Ex...

  • get请求和post请求的区别主要有两点

    get请求和post请求的区别主要有两点 get请求可以被缓存而post请求不能被缓存 get请求的传参方式和po...

  • get post

    GET GET 的本质是得 从服务器拿数据,效率更高 GET请求能够被缓存 在 HTTP 协议定义中,没有对 GE...

  • GET和POST的区别

    GET: GET 请求可被缓存GET 请求保留在浏览器历史记录中GET 请求可被收藏为书签GET 请求不应在处理敏...

  • java发送http请求

    restTemplate get请求 post请求 apache.http.client get请求 post请求...

  • Java计算机网络相关笔试面试题

    1.GET 和 POST 的区别? GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏...

网友评论

      本文标题:Http GET请求缓存问题

      本文链接:https://www.haomeiwen.com/subject/sboksctx.html