header: El elemento de HTML Header representa un grupo de ayudas introductorias o de navegación. Puede contener algunos elementos de encabezado, pero también otros elementos como un logo, una sección que aglutine secciones de encabezados, una formulario de búsqueda o cosas parecidas.
section: se utilizan para encerrar el código correspondiente a una sección genérica dentro de un documento o aplicación. Normalmente, un bloque de texto al que perfectamente le podríamos colocar un título o encabezado. Además, todo el contenido que engloba ha de guardar cierta relación entre sí. Las diferencias entre article y section, cuándo usar una etiqueta article y cuándo utilizar la etiqueta section, no termina de quedar demasiado clara tras leer la norma que rige el Html5. Es normal confundir una con otra y no estar seguro de cuál utilizar en cada momento al escribir código Html5, verdad?. Como regla general podríamos establecer lo siguiente: Si el fragmento de código posee significado por si mismo, si en caso de escribirlo en un papel separado del resto de la web el fragmento continua teniendo su sentido, podemos usar un article. Si no tiene tanto sentido, pero tiene relación con lo comentado en el resto de esa página, podemos usar un section. Si el algo que no tiene mucho que ver son el tema de esa página en concreto ya dijimos que se trataría de un aside. Si no cumple con ninguna de las condiciones anteriores, pero necesitamos encerrarlo entre dos etiquetas para poder aplicarle estilos o scripts, entonces lo que debemos usar es un Div.