I wrote an article that goes over this information in depth. I will summarize it here.
tl;dr - There are only two types of bytecode on Ethereum but five different names to describe them.
This is the code that most people are referring to when they say bytecode. This is the code that generates the runtime bytecode—it includes constructor ...