Well if i put this in simple words than
page_layout is represents the full page, i mean you can declare your own full page without inheriting any master or root or other empty layout. (only use, if you want to completely customize your own full page.)
layout represents the part of the page (mostly the html content). You can use this when you want your page to inherit the common contents from the root layout like header, footer etc etc.