Difference and relation between CMAKE_PREFIX_PATH and CMAKE_FIND_ROOT_PATH

What’s the difference and relation between CMAKE_PREFIX_PATH and CMAKE_FIND_ROOT_PATH (easier put: in a cmake script having find_package command)?

Thanks before.

It seems that CMAKE_PREFIX_PATH is supported from the environment as well whereas CMAKE_FIND_ROOT_PATH is only a CMake variable. It looks like there are also differences in the arguments that can be used to include/exclude them from various find_ commands (e.g., CMAKE_FIND_ROOT_PATH_BOTH, ONLY_CMAKE_FIND_ROOT_PATH, and NO_CMAKE_FIND_ROOT_PATH).