My server in Python (Tornado) send a csv content on a GET request. 
I want to specify the content type of the response as "text/csv", but when I do this the file is downlaoded when I send the GET request on my browser.
How can I specify the header "Content-type : text/csv" without having making it a downlaodable file but just show the content on my browser ?
The content-type header is what tells the browser how to display a given file. It doesn't know how to display text/csv, so it has no choice but to treat it as an opaque download. If you want the file to be displayed as plain text, you need to tell the browser that it has content-type text/plain. 
If you need to tell other clients that the content type is text/csv, you need some way to distinguish clients that understand that content type from those that do not. The best way to do this is with the Accept request header. Clients that understand CSV would send Accept: text/csv in their request, and then the server would respond with content-type text/plain or text/csv depending on whether CSV appears in the accept header. 
Using the Accept header may require modifications to the client, which may or may not be possible for you. If you can't update the clients to send the Accept header, then you'll have to use a hackier workaround. You can either use a different url (add ?type=plain or ?type=csv) or try to detect browsers based on their user agent.
GET response - Do NOT send a downlaodable file