Ответ 1
да, он обрабатывает его прозрачно, если вы установите его режим кэширования:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]
cachePolicy: NSURLRequestUseProtocolCachePolicy
timeoutInterval:60];
Примечание: вы не можете видеть заголовок в запросе вообще, и если ответ 304 будет возвращен сервером, вы увидите только ответ 200, который он прозрачно загрузил из кеша.