Recording is the primary function of Charles. Requests and responses are recorded to the current Session for you to later inspect and analyse.
The requests recorded depend upon the configuration of Charles. Usually this would include all HTTP and HTTPS traffic from your browser, and possibly other applications on your computer (if your OS proxy settings are changed as well). However it may also include data from generic socket connections such as through the SOCKS proxy or Port Forwarding.
If recording is off, Charles passes through all of the requests as normal but they are not recorded in the session for you to look at.