A pull-up resistor is a resistor connected between a signal conductor (GPIO) and a positive power supply voltage while a pull-down resistor is a resistor connected between a signal conductor and a ground. They are used on inputs to prevent floating lines, rapidly switching between high and low and a middle “undefined” region. Outputs normally do not need them. They may also be used as the interface between two different types of logic devices, possibly operating at different logic levels and power supply voltages.
AVR microcontroller GPIOs are armed with only internal pull-up resistors while STM32 and Espressif chips have both, internal pull-up and pull-down resistors. The value of these resistors depends on the microcontroller type and can be found in the datasheet. For example the internal resistor value of AVR chips is guaranteed to be between 20kΩ and 50kΩ. You can configure GPIO pins to use the internal pull-up/pull-down resistor by enabling a flags of dedicated register.
Other articles about pull-up/pull-down resistors: