Content-Type is standards with a redirect, but if it ends in two newlines and it is served before the Location header, it will be treated as a HTML page
the Location: header is generated by the cgi script and requires the two newlines, with or without a subsequent HTML document. the Content-Type: header in this case appears to be generated by the server, in which case the server would properly insert this and additional headers without extraneous newlines.
I'm just pointing out that it would be more efficient to serve those headers on the page the user-agent is redirected to. That way if a user-agent directly accesses the page without a redirect, it will be served the proper headers.
the headers for the 302 response and the headers on the page the user-agent is redirected to would control the caching of those two response independently. both response require their own appropriate headers.