I wish to create a wordpress site that refreshes just the content/publish part and never the header, navigation, footer or even the sidebar. Is possible? If so then how?

That which you attempt to achieve is technically possible, however, your wordpress theme must support that. You should utilize AJAX for this as well as your theme must provide server endpoints for the kind of content that's likely to be asked for.

You can do this by supplying fragment templates within your theme which only return the fragment under consideration (e.g. content column, menu). However based on your site's layout this is probably not always possible, e.g. when the layout changes in one page to a different.

A potential workaround would be to request the brand new page via AJAX and just replace the various components within the DOM which are transformed.

Regardless you have to register an AJAX PHP callback function within wordpressCodex.

If you would like the majority of the elements to stay in position you aren't refreshing always. What you would like to do is definitely an AJAX request to retrieve the brand new information for the_content increase the DOM with JavaScript.

You'd require a function that intercepts the press event for links, handles the AJAX, after which returns false to avoid moving from the page.