if you are looking to do it using just Html there is no possible way, but you can use JavaScript inside your html to create a custom attribute which will include your html files. You can read more about it here - template tag examples
This is not the best solution for this, I won't personally recommend you to do this as you are a beginner.
This might be overwhelming at first but you don't need to understand or learn it right now. For a quick example -
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test File</title>
</head>
<body>
<div include-your-html = "header.html">
<!--Cosidering I have header.html file in the same directory-->
<p>This is my body</p>
<div include-your-html = "footer.html">
<!--Cosidering I have footer.html file in the same directory-->
<!--You can use this script to set the attribute-->
<script>
function includeHTML() {
var z, i, elmnt, file, xhttp;
z = document.getElementsByTagName("*");
for (i = 0; i < z.length; i++) {
elmnt = z[i];
file = elmnt.getAttribute("include-your-html");
if (file) {
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 200) {elmnt.innerHTML = this.responseText;}
if (this.status == 404) {elmnt.innerHTML = "Page not found.";}
elmnt.removeAttribute("include-your-html");
includeHTML();
}
}
xhttp.open("GET", file, true);
xhttp.send();
return;
}
}
}
includeHTML()
</script>
</body>
</html>
For some of the people this may be blocked due to CORS policy, you can set up a CORS proxy to get around this. More detailed information at sideshowbarker's answer here