This node is a general purpose area detection node. It can detect when another object enters or leaves its area but doesn’t have any physics properties. This is great for when you simply need to know when one object overlaps another.
This node is for what is sometimes called “arcade physics” (hence the little Space Invaders icon). It is not affected by physics (gravity, etc.) but will collide with other bodies. This is good for player controlled bodies that need collision - for example, a platform character that doesn’t fall through the ground.
This is the node to use for full-on physics simulation. Objects of this type will behave realistically when interacting with the environment. You would use this, for example, if you were making an Angry Birds style game and wanted stacks of blocks that would tumble down when hit.
This is a static physics body, meaning it is designed to represent non-moving objects like walls, trees, etc. - anything that will not be moving around.
A node's parent is a node that is one level up the node's hierarchy.
A node's owner is one that the node will be saved along with. Eg: If you make a node from script in the editor, it will have a default owner of null. Therefore it won't be saved with the currently edited scene.
The standard way to ensuring that a node is correctly drawn 'in front' or 'behind' others is to manipulate the order of the nodes in the scene panel. Perhaps counterintuitively, the topmost nodes in the scene panel are drawn on behind lower ones in the viewport.
2D nodes also have a property for controlling their drawing order called z_index.
You can also use CanvasLayers to control the drawing order of nodes. They are specially useful to draw parallax backgrounds, UIs and transitions.