Yes, what you wrote is correct. JavaScript requests a page on the server, and can send to it POST and GET data. The result of this request is then received and processed by javascript which updates the page on the client.
jQuery has some methods which make it all easier and result in easier to understand code, taking care of the technical details.
This result (data) that is received by javascript can be just HTML to insert in a part of the page, or (even nicer) it can be a JSON object. You can do something like this on the server (PHP):
$toSend = array(
'head' => 'head data blah blah',
'body' => 'blah blah blah'
);
print(json_encode($toSend));
Then on the client, when you receive (JSON) data and enter it into a variable, say receivedData, you can access various parts of it like this; receivedData.head, receivedData.body...
I won't go into details regarding how to do it in JavaScript, but jQuery makes it very easy.