This review details the approaches adopted to implement classical code division multiple access (CDMA) principles directly in the optical domain resulting in all optical derivatives of electronic systems. There are a number of ways of realising all-optical CDMA systems, classified as incoherent and coherent based on spreading in the time and frequency dimensions. The review covers the basic principles of optical CDMA (OCDMA), the nature of the codes used in these approaches and the resultant limitations on system performance with respect to the number of stations (code cardinality), the number of simultaneous users (correlation characteristics of the families of codes), concluding with consideration of network implementation issues. The latest developments will be presented with respect to the integration of conventional time spread codes, used in the bulk of the demonstrations of these networks to date, with wavelength division concepts, commonplace in optical networking. Similarly; implementations based on coherent correlation with the aid of a local oscillator will be detailed and comparisons between approaches will de drawn. Conclusions regarding the viability of these approaches allowing the goal of a large, asynchronous high capacity optical network to be realised will be made.