diferença entre outputText e outputLabel JSF

olá pessoal,
sou iniciante no JSF.
vi alguns códigos que usavam outputLabel e outros que utilizavam outputText. qual a diferença básica? quando devo usar um ou outro?
vi que no outputLabel há um atributo chamado “for” em que se associa este label com um id de outro componente.
pra que serve esta associação?
e vi códigos emque usavam o outputLabel sem especificar o atributo for. isso é correto?

h:outputText é para saída de texto padrão sem poder controlá-la.

h:outputLabel atua como um componente que pode ser cotrolado por outro componente, atua como um marcador, por exemplo.

<h:outputLabel for = “X”> Rótulo Texto: </ h:outputLabel>
<h:inputText id=“X” value="#{minhabean.propriedade}" />

html geraria algo como:

Rótulo Texto: </ label>