Caching 为什么ASIHttpRequest仅在请求方法为“;获取”?;

Caching 为什么ASIHttpRequest仅在请求方法为“;获取”?;,caching,post,asihttprequest,Caching,Post,Asihttprequest,当我在ASIHTTPRequest中查看代码时,我发现以下部分 if (![[self requestMethod] isEqualToString:@"GET"]) { [self setDownloadCache:nil]; } 但我不知道为什么?谁能告诉我原因?一般来说,GET请求应该没有副作用:它们所做的只是生成响应(如果我没记错的话,这在http规范中有描述)。缓存响应并使用它来避免将来发出请求是完全安全的 另一方面,其他http方法(如post、pu

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

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

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

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

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