Cookies allow servers to store and retrieve information on the client side. Servers send cookies in HTTP responses and browsers send the cookie back with subsequent requests. There are two main methods for managing sessions between clients and servers - using session cookies or URL rewriting. With session cookies, the server embeds a session ID in a cookie it sends to the client, and the client sends the cookie back on future requests to identify the session. With URL rewriting, the server encodes the session ID directly into the URLs of links and redirects. The session data itself is stored server-side and associated with the client via the session ID.