Structure functions are a measure of the partonic structure of hadrons, which is important for any process which involves colliding hadrons. They are a key ingredient for deriving partons distributions in nucleons. In recent years dramatic progress has been made in the understanding of the nucleon structure and the precision of its partonic content, due to vast theoretical progress, and the availability of new high precision measurements. This review gives an overview on present structure function and related data, and on the most recent techniques used to extract parton distribution functions to describe the structure of the proton. Special attention is given to the determination of the uncertainties on the parton distributions.