¿Cómo cachear correctamente mis API de Symfony2?

Estoy creando las API RESTfull sin estado clásicas en Symfony2: los usuarios / aplicaciones obtienen un token de autenticación en la API de autenticación y se lo entregan a todas las demás API para que se registren y publiquen datos / acceso protegidos / datos privados / privados en otras API.

Ahora tengo tres preocupaciones con respecto a este flujo de trabajo y almacenamiento en caché:

Cómo usar el caché HTTP para mis API 'estáticas' (que siempre entregan el mismo contenido, independientemente del usuario registrado y su token), suponiendo que diferentes tokens serían pasados ​​en la url por diferentes usuarios para la misma API, de modo que la url ¿nunca será lo mismo? ¿Cómo usar el caché compartido HTTP entonces?

Tengo API para la misma url que produce un resultado diferente, en relación con los derechos de usuario registrados (básicamente tengo 4 niveles de derechos diferentes). La pregunta es: ¿es un buen patrón? ¿No es mejor tener 4 URL diferentes, una para cada derecho, que pueda almacenar en caché? Si no, ¿cómo implementar un caché adecuado en eso?

¿Está la caché HTTP compartida trabajando en HTTPS? Si no, ¿qué tipo de almacenamiento en caché debo implementar y cómo?

Gracias por sus respuestas y luces en eso.

Respuestas a la pregunta(1)

Su respuesta a la pregunta