Sidedef

A sidedef contains the texture data for each linedef (though sidedefs do not reference linedefs directly, indeed it is the other way around). Each sidedef contains texture data, offsets for the textures and the number of the sector it references (this is how sectors get their 'shape').

Upper Texture - This contains the name of a texture that will be displayed on the border between a sector and its neighboring ceiling of a different height. If the linedef that contains this sidedef is one sided this field is meaningless.

Middle Texture - On one sided linedefs this will be the only texture displayed; as the main wall texture. On two sided linedefs this will be displayed as a 'floating' texture which the player is able to walk through. Middle floating textures can be used to achieve a variety of faux 3D effects such as 3D bridges. Note that middle floating textures will only tile horizontally and not vertically, where they only repeat once.

Lower Texture - This is the same as the upper texture only it's displayed on the border between a sector and its neighboring floor of a different height.

X Offset - How many pixels to shift all the sidedef textures on the X axis (right or left).

Y Offset - How many pixels to shift all the sidedef textures on the Y axis (up or down).

On a somewhat related note, it's interesting to observe that regardless of what texture you have on a sidedef, be it "-" (no texture) or "SW1LION" (or anything else) each sidedef will still take up the same amount of space since textures are referred to by name(in Doomstring format).

Sidedef Structure
For the more technical you may wish to know the actual structure that all sidedefs have should you decide to make some sort of WAD utility.

Sidedefs are exactly the same in ZDoom/Hexen format as they are in the original Doom format.