HTML5 pushState

Tan fácil como usar la función pushState del objeto history.

jQuery(document).on('click', 'a.withpushstate', function (e) {
    let href = jQuery(this).attr('href');
    history.pushState({
        href: href
    }, false, href);

    //si estamos usando algun framework aquí podríamos enseñar un loading
    jQuery.get(href, function (data) {
        jQuery('#contenedorpushstate').html(data);
        //y aquí ocultar el loading nuevamente
    });
    return false;
});