Cache-Control头字段可以被扩展,通过使用一个或多个缓存扩展标记,每个都带有可选的值。缓存必须忽略不识别的缓存指令。
信息扩展(那些不需要改变缓存的)可以被添加而不改变其他指令的语义。
行为扩展被设计设计为按对已存在的缓存指令的基础的修改者工作。新指令和指令都被提供,这样不理解新指令的应用程序将默认的使用旧指令指定的行为,并且那些理解新指令的应用程序将识别出它并修改与旧指令相关的要求。在这种方式下,对已存在的cache-control指令的扩展可以被部署而不需要破坏已部署的缓存。
例如,考虑一个假想的新响应指令称为“community”,它作为private指令的修改者;在额外的私有缓存中,任何只由名为community的成员存储的缓存都被允许存储这个响应。希望允许UCI社区在共享高速缓存中使用其他私有响应的源服务器可以这样做,通过包含
Cache-Control: private, community="UCI"
识别这个community缓存扩展的缓存可以按照那个扩展来扩大它的行为。一个不识别community缓存扩展的缓存将忽略它并采用private指令。