Initially ESRI’s shapefiles were made up of three files stored in the same directory: a .shp file storing the geometries, a .shx file storing “a positional index of the feature geometry to allow seeking forwards and backwards quickly” [1], and a .dbf file [note 1] storing the attribute data.
One feature the original shapefile format lacked was metadata about the used map projection. Later, an optional extension [note 2] was introduced, the .prj files, storing the spatial reference data of the geometries in the .shp file. Joel Lawhead writes in his blog about this issue: “When ESRI created the shapefile format everyone worked with data in only one projection. [...] Not too long ago as hardware capability increased according to Moore’s Law, GIS software packages developed the ability to reproject geospatial layers on the fly. You could now load in layers in any projection and as long as you told the software what projections were involved the map would come together nicely.” [2]
Thus, sometimes the .prj file will be needed despite it is not mandatory. For instance, when publishing a shapefile with GeoServer, attaching the .prj file it is strongly recommended [3]. The .prj file contains information like an identifier of the projection system, datum, used units, spheroid… usually in Well-known Text format.
SpatialReference.org screenshot
SpatialReference.org is a website worth mentioning. It contains a very complete list of spatial reference systems descriptions “in as many formats as possible” [4]. Among these formats there is .prj file. So if you need the .prj file and already know the used spatial reference, just go to this website, find it by using the search tool and download the .prj file.
notes
[note 1] As the extension suggests, they are dBase files. According to the Wikipedia, “An alternative format that can also be used is the xBase format”.
[note 2] Currently there are 9 extensions, some of them propietary.
references
[1] Shapefile, Wikipedia entry: http://en.wikipedia.org/wiki/Shapefile
[2] “Create a .prj Projection File for a Shapefile”: http://geospatialpython.com/2011/02/create-prj-projection-file-for.html
[3] “Working with Data, Shapefile” (GeoServer 2.1.x User Manual): http://docs.geoserver.org/stable/en/user/data/shapefile.html#adding-a-shapefile
[4] “About Spatial Reference”: http://spatialreference.org/about/