이 요청이 캐시되는 이유를 아는 사람이 있습니까?iOS URL 캐시 캐싱 (IMHO)
나는 수정되지 않은
.default
URLSessionConfiguration
을 사용하고 있습니다.응답 헤더는 다음과 같습니다
{
"Accept-Ranges" = bytes;
"Content-Length" = 1480;
"Content-Type" = "application/json";
Date = "Mon, 22 May 2017 19:14:13 GMT";
Etag = "\"42bebc5fb88323b8cd145ed85ea7a018\"";
"Last-Modified" = "Mon, 22 May 2017 14:54:38 GMT";
Server = AmazonS3;
"x-amz-id-2" = "abcdefghijklmn";
"x-amz-request-id" = 1A2B3C4D5E;
}
(찰스에서 데이터 작업의 완료 블록의 응답을 디버깅에서 확인) Charles 프록시를 사용하여 캐시됩니다. 첫 번째 요청은 나타나지만 후속 요청은 나타나지 않습니다.
.ephemeral
세션 구성을 사용하거나 메모리 및 디스크 크기가 0 인 사용자 정의 URL 캐시를 설정하면 모든 요청이 찰스에 표시되므로 찰스가 유효한 테스트라는 것을 알고 있습니다.
저는 항상 캐시 헤더가없는 경우 캐시되지 않는다고 가정했습니다.
아무도 아이디어가 없습니까?
편집 : 여기에 내가 항상 캐시가 응답을 헤더없이 캐시되지 않는다는 것을 가정 한
po task.originalRequest
▿ Optional<URLRequest>
▿ some : http://s3-eu-west-1.amazonaws.com/path/path/configuration.json
▿ url : Optional<URL>
▿ some : http://s3-eu-west-1.amazonaws.com/path/path/configuration.json
- cachePolicy : 0
- timeoutInterval : 60.0
- mainDocumentURL : nil
- networkServiceType : __ObjC.NSURLRequest.NetworkServiceType
- allowsCellularAccess : true
▿ httpMethod : Optional<String>
- some : "GET"
- allHTTPHeaderFields : nil
- httpBody : nil
- httpBodyStream : nil
- httpShouldHandleCookies : true
- httpShouldUsePipelining : false
어떤 요청이 생겼는데? –
@Koen. S3 버킷을 가리키는 URL을 얻는 것일뿐입니다. 사용자 정의 헤더 등은 전혀 없습니다! – deanWombourne