Internal (IS) or external (ES) shocks in relativistic expanding shells are currently the best-known mechanisms for producing gamma-ray bursts (GRBs). We calculate the hydrodynamic conditions and the cooling processes In internal shocks, which occur when one layer overtakes another, We compare these conditions with the conditions in external shocks which occur when the shell encounters the interstellar medium (ISM). We find that the complicated temporal structure observed in GRBs could be easily explained with the IS scenario. Unlike ES, the observed temporal structure simply reflects the temporal behaviour of the internal engine that produces the shell. We also find that opacity, and in particular the opacity for pair production, poses strong constraints on the parameter space and consequently bursts with very narrow peaks are expected to be optically thick and would not contain GeV photons. Finally we find that, as in ES, synchrotron is the most likely radiation process.