How to access the headers of a response using Requests

share link

by gayathrimohan dot icon Updated: Aug 2, 2023

technology logo
technology logo

Solution Kit Solution Kit  

Response headers are an essential component of the HTTP communication protocol. It helps in transmitting data over the internet. The server responds with an HTTP response if a client requests a server for a specific resource. This process includes both the requested data and response headers. Response headers are key-value pairs. Those pairs are included in the header section of the server's response. They provide more information about the response and how the client should handle it. These headers convey various instructions and metadata related to the response. It will allow the client and server to communicate. It allows them to exchange necessary information.  


Some common use cases for response headers:  

  • Content-Type: This header indicates the media type of the response body. It helps the client understand how to interpret and process the received data.  
  • Content-Length: It specifies the size of the response body in bytes. The client can use this information to ensure complete response retrieval.  
  • Location: A redirection in the header specifies the new URL.  
  • Set-Cookie: It sets a cookie on the client's side. This allows the server to maintain stateful sessions and store user-specific information.  
  • Access-Control-Allow-Origin: This header is relevant for cross-origin resource sharing (CORS). It indicates whether the client can access the requested resource.  
  • Server: This identifies the software used by the server to handle the request. It provides information about the server implementation.  

Response headers play a role in ensuring proper communication between clients and servers. This is done by enabling the transmission of relevant information. It controls various aspects of the response-handling process. They enhance the functionality, security, and performance of web applications. It provides instructions, metadata, and enabling features. Those features are caching content negotiation and session management. Response headers are an essential part of HTTP to verify more information. That information is about the server's response to a client's request. The server sends them along with the response body. It also contains metadata or instructions for the client.  


We can classify the response headers into two main categories:  

Standard Headers:  

The HTTP/1.1 specification defines standard headers. All compliant web servers and clients recognize them.  


Some used standard response headers include:  

  • Content-Type: It indicates the media type of the response body. Such as "text/html" for HTML content or "application/json" for JSON content.  
  • Content-Length: It specifies the size of the response body in bytes.  
  • Cache-Control: Instructs the client and intermediaries on how to cache the response.  
  • Location: Used for redirection, specifying the URL to which the client should redirect.  
  • ETag: Provides an identifier for a specific version of a resource.  
  • Last-Modified: Indicates the date and time when we last modified the requested resource.  
  • Server: Specifies the name or version of the server software.  
  • Date: Represents the date and time when we generated the response.  

Custom Headers:  

The HTTP specification does not define custom headers. They are specific to an application or organization. This provides flexibility for developers to extend the HTTP protocol. This is done with application-specific functionalities and information sharing.  


Examples of custom headers include:  

  • X-Request-ID: A unique identifier generated by the server. It tracks and correlates requests and responses.  
  • X-Custom-Header: An application-specific header used to convey more information.  
  • X-RateLimit-Limit: Specifies the greatest number of requests. It is allowed within a certain time frame for rate-limiting purposes.  
  • X-Powered-By: Indicates the technology used by the server to process the request.  

Response Headers: 

Response headers play a role in web communication. They provide more information and instructions to the client browser. The server sends them along with the response to a client's request.  


Here are some common use cases:  

  • Content-Type: This specifies the type of content being sent in the response. It enables the client browser to interpret and render the content.  
  • Content-Disposition: It can prompt the user to save or display a file in the browser.  
  • Cache-Control: The Cache-Control header controls the caching behavior of the client browser. It specifies directives like max-age, no-cache, or no-store. It determines whether the browser should cache the response, revalidate it, or not cache it at all.  
  • Set-Cookie: The header allows the server to send cookies to the client browser. Cookies stores user-specific information and maintain state across many requests.  
  • X-Frame-Options: This header protects against clickjacking attacks. It specifies whether we can display a web page within an iframe on another site.  


Here are some tips to help you create custom response headers:  

  • Identify the information: This could include information. It includes the content type, caching directives, authentication status, and API version.  
  • Choose the appropriate header field: Use headers for custom response headers. This includes Content-Type, Cache-Control, Authorization, X-API-Version, and X-Custom-Header.  
  • Specify the content type: This helps to understand how to interpret the content.  
  • Use the correct syntax: Headers follow a specific syntax. Each header consists of a field name followed by a colon, a space, and the field value. Ensure you use the correct syntax to avoid any parsing or interpretation issues.  


In conclusion, response headers play a role in web development. This can contribute to improving the user experience. By leveraging the power of response headers, web developers can optimize performance. It enhances security, ensures compatibility, and streamlines communication. It leads to improved user experiences with faster loading times. It reduces data consumption. It enhances security measures and seamless interactions with web applications. Developers need to understand and use response headers. It creates robust web experiences.