Actually the webpage you give does not only refresh its content. It may look that way, but you can see that header is still flickering aka refreshing(also if you change the content live it will change when you click a link)
There is actually a whole new page. But they use templates to create the content.
One page is a template website that calls different fractions of the webpage(ie footer, header and content). Where the content can just have an other content based on the given input.
This can just be done with php.
Template.php
include "header.php";
include $contentpage;
include "footer.php";
Where you give differnt content file names that you want to load.
Header.php
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Page title</title>
</head>
<body>
BLALBLA CONTENT
content.php
echo $content;
footer.php
</body>
</html>
This together will create one page wtih a dynamic content and a static header and footer( where you can also add static scripting).
This is just a basic idea on how you can achieve this.
The static content(header and footer) might as well be cashed to load it faster.
Additional info why i think this
Also when you open the link into a tab, you will see that every of that link will contain the header. As with, for example, an iFrame only the dynamic content will be shown in the link.