How are 304 not modified responses generated? How does a browser determine whether the response to an http request is 304? Is it set by the browser or sent from the server?