NSURLConnection, NSURLRequest und remote-caching

Ich habe da ein kleines problem mit Anfrage Zwischenspeicherung unter Verwendung von NSURLConnection asynchrone verbindungen auf dem iPhone. Ich weiß nicht, ob ich etwas falsch verstanden, oder wenn Kakao ist genau das Gegenteil zu dem, was es tun soll...

In der Dokumentation für NSURLRequest sagt, dass:

NSURLRequestReloadIgnoringLocalCachedata

Gibt an, dass die Daten von der URL laden, die geladen werden soll, aus der ursprünglichen Quelle. Nicht vorhandene cache-Daten verwendet werden sollten, die zur Erfüllung einer URL laden Anfrage.

und:

NSURLRequestReloadIgnoringLocalAndremotecachedata

Gibt an, dass es nicht nur die lokalen cache-Daten werden ignoriert, aber, dass proxies und andere Zwischenprodukte sollten angewiesen werden, zu ignorieren Ihre caches so weit, wie es das Protokoll erlaubt.

Nun, wenn ich eine E-NSURLRequest mit NSURLRequestReloadIgnoringLocalCachedata (die angeblich zu ignorieren lokalen cache, aber die Verwendung von remote-cache, wenn verfügbar), den Header, die gesendet werden, sind:

GET /dashboard HTTP/1.1 
User-Agent: XBlip1.0 CFNetwork/422.15.2 Darwin/9.6.0 (i386) (iMac8%2C1) 
X-Blip-Api: 0.02 
Akzeptieren: application/json 
Authorization: Basic (...) 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 
Connection: keep-alive 
Host: api.blip.pl 

Wird und der status 200 OK. Aber wenn ich NSURLRequestReloadIgnoringLocalAndremotecachedata, die angeblich zu ignorieren, die sowohl lokale als auch remote-caches, wie der name schon sagt, eine zusätzliche header Hinzugefügt wird:

If-None-Match: "d751713988987e9331980363e24189ce" 

Und die Antwort " 304 not Modified. Ich habe die HTTP-RFC, und für "If-None-Match", heißt es, dass:

Wenn einer der entity-tags entsprechen den entity-tag der Einheit gewesen wäre, wieder in der Antwort auf eine ähnliche Anfrage BEKOMMEN (ohne If-None-Match-header) auf diese Ressource, (...) dann MUSS der server NICHT ausführen die angeforderte Methode (...) Statt, wenn die Anfrage war die Methode GET oder HEAD ist, SOLLTE der server antwortet mit einem 304 (Nicht Geändert) Antwort

Scheint es So, dass wenn ich NSURLRequestReloadIgnoringLocalAndremotecachedata, statt ignorieren der remote-cache, Kakao erzählt die remote-server explizit, dass es sollte Verwendung von remote-cache, und wenn ich NSURLRequestReloadIgnoringLocalCachedata, es nicht hinzuzufügen, dass line-und in-Effekt der remote-cache wird nicht verwendet.

Also, was genau ist hier passiert? Hab ich was verpasst, oder ist Kakao Einstellung eine falsche header?

InformationsquelleAutor Kuba Suder | 2009-03-21
Schreibe einen Kommentar