0

ASIHTTPRequest のコードを確認すると、次のセクションが見つかりました

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

しかし、私は理由を知りませんか?誰が理由を教えてくれますか?

4

1 に答える 1

1

一般に、GET リクエストには副作用がないと考えられています。リクエストが行うことは、レスポンスを生成することだけです (私の記憶が正しければ、これは http 仕様に記述されています)。応答をキャッシュし、それを使用して将来の要求を回避することは完全に安全です。

一方、post、put、delete などの他の http メソッドには一般に副作用があるため、以前の応答を返すだけでは安全ではありません。呼び出し元は副作用に依存している可能性があります (たとえば、行がデータベースに挿入されるなど)。 )。このような状況では、実際にリクエストを行う代わりに、「レコードが作成されたページ」をキャッシュしてキャッシュから表示するだけでは不十分です。

于 2012-05-16T07:13:21.653 に答える