0

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

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

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

4

1 回答 1

1

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

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

于 2012-05-16T07:13:21.653 回答