Textures are a way of saving data in a 2 or 3 dimensional array. The data is usually* a number between 0 and 1 (or 0 and 255). This data is then mapped to a specific place on geometry using UV coordinates. A 2D texture is single channel (therefore appears grey) whereas a 3D texture is using 3 channels (therefore appears colored). We can add a 4th channel to our textures, usually called the alpha channel, but we can put anything we like in there.
*textures can also be high dynamic range (HDR), which is usually reserved for skies and VFX.
There are generally 4 important texture types:
All of these texture types have different compression settings which have a large impact on the final shading result. Nathan Reed’s explanation of what they are is probably the best around.
Understanding BCn Texture Compression Formats – Nathan Reed’s coding blog
Rogelio Olguin has a fantastic deep dive into what the essentials of a texture are, and you can read it here:
The Anatomy of a Texture by: Daniel Rose, Rogelio Olguin
Normal maps can be made in either of two basic flavors: tangent-space or object-space. World-space is basically the same as object-space, except it requires the model to remain in its original orientation, neither rotating nor deforming, so it's almost never used.
Tangent-space normal maps are vectors that are relative to the normal direction of the face they are assigned to, as opposed to object- or world-space normal maps, which are relative to the orientation of the object (which is the same as world if the object does not move).
For more info on what types of textures comprise a PBR material and the accepted ranges, check: