为什么ASIHttpRequest仅在请求方法为“GET”时才使用缓存?

时间:2012-05-16 07:06:08

标签: caching post asihttprequest

当我查看ASIHTTPRequest中的代码时,我发现了以下部分

    if (![[self requestMethod] isEqualToString:@"GET"]) {
        [self setDownloadCache:nil];
    }

但我不知道为什么?谁能告诉我原因?

1 个答案:

答案 0 :(得分:1)

一般来说,GET请求应该没有副作用:他们所做的就是产生一个响应(如果我没记错的话,这在http规范中有描述)。缓存响应并使用它来避免将来发出请求是完全安全的。

另一方面,像post,put,delete这样的其他http方法通常会产生副作用,因此仅返回上一个响应是不安全的:调用者可能依赖于副作用(例如插入一行)进入数据库)。在这种情况下,您不仅要缓存“记录创建页面”并从缓存中显示而不是实际发出请求。