En iOS, ¿cuál es la diferencia entre autoresizing, AutoLayout y restricciones?

Al leer la documentación de Apple, encuentro referencias a autoresizing, AutoLayout y restricciones. ¿Cuál es la diferencia entre usar todo esto en el código? ¿Cuál es la forma correcta de aplicar estas técnicas mediante programación en iOS 9?

Respuestas a la pregunta(1)

Su respuesta a la pregunta