Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • webscraping
  • Beautiful Soup
  • Selenium
  • Scrapy
  • urllib
  • open cv
  • Data analysis
  • Machine learning
  • NLP
  • Deep learning
  • Data Science
  • Interview question
  • ML math
  • ML Projects
  • ML interview
  • DL interview
Open In App
Next Article:
response.encoding - Python requests
Next article icon

response.headers - Python requests

Last Updated : 14 Jun, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The response.headers object in Python's requests library functions as a special dictionary that contains extra information provided by the server when we make an HTTP request. It stores metadata like content type, server details and other headers, such as cookies or authorization tokens. The keys in response.headers are case-insensitive, meaning we can access them in any case. Example:

In this example, we use GitHub's API to retrieve the headers of a response.

Python
import requests r = requests.get('https://api.github.com')  # accessing response headers h = r.headers print(h)  # accessing a specific header print(h['Content-Type']) 

Output

Output
GitHub API Headers Output

Explanation:

  • requests.get() function sends an HTTP GET request to the given URL.
  • r.headers gives us the headers of the response, which is stored as a dictionary-like object.
  • We can then extract a specific header (like Content-Type) using standard dictionary access.

Most common HTTP Response headers

Here are some of the most common HTTP response headers we might encounter:

Header Name

Description

Example Value

Content-Type

Type of content returned (HTML, JSON, etc.)

application/json; charset=utf-8

Content-Length

Size of the response body in bytes

348

Date

Date and time when the response was generated

Wed, 08 Apr 2025 12:00:00 GMT

Server

Info about the web server

nginx/1.18.0

Set-Cookie

Cookie to be stored on client

sessionId=abc123; Path=/; HttpOnly

Cache-Control

Instructions for caching

no-cache, no-store, must-revalidate

Expires

When the content should be considered outdated

Thu, 01 Jan 1970 00:00:00 GMT

Location

Redirect location

https://example.com/login

Authorization

Info about required authentication (often in requests, too)

Bearer token123

X-RateLimit-Limit

Max number of requests allowed

60

Examples of using response.headers

Example 1: In this example, we demonstrate how to detect HTTP redirection (status codes 301 or 302) and retrieve the Location header, which indicates where the client should be redirected.

Python
import requests  # Send GET request without auto-redirect r = requests.get('http://google.com', allow_redirects=False)  # Check for redirection (301 or 302) if r.status_code in {301, 302}:     print(r.headers['Location']) else:     print("No redirection.") 

Output

Output
Location header

Explanation:

  • allow_redirects=False parameter ensures that the request won't automatically follow redirects.
  • If the status code indicates a redirection (301 or 302), the Location header will contain the new URL to which the client should be redirected.

Example 2: In this example, we fetch JSON data from an API and check the Content-Type to ensure we handle the response appropriately.

Python
import requests  # Fetch data and parse if JSON r = requests.get('https://jsonplaceholder.typicode.com/posts') if 'application/json' in r.headers['Content-Type']:     print(r.json()) else:     print("Not JSON.") 

Output

[{'userId': 1, 'id': 1, 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 'body': 'quia et
suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est
autem sunt rem eveniet architecto'}, {'userId': 1, 'id': 2, 'title': 'qui est esse', 'body': 'est rerum tempore vitae\nsequi sint nihil
reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam
non debitis possimus qui neque nisi nulla'},.....................................................

Explanation:

  • requests.get() function is used to fetch data from an API.
  • We then check the Content-Type header to ensure that the response is in JSON format before parsing it with r.json(). If it's not JSON, we print a message indicating that.

Example 3: Extracting Cookies from Response Headers

In this example, we send a request and check the Set-Cookie header to see what cookies the server sends back.

Python
import requests  # Send a GET request to the website r = requests.get('https://httpbin.org/cookies/set?mycookie=value')  # Check for Set-Cookie header if 'Set-Cookie' in r.headers:     print("Cookie from server:", r.headers['Set-Cookie']) else:     print("No cookie set.") 

Output

Cookie from server: mycookie=value; Path=/

Explanation:

  • The URL https://httpbin.org/cookies/set?mycookie=value sets a cookie named mycookie.
  • r.headers['Set-Cookie'] allows us to access the cookie sent by the server.
  • This can be useful when we need to manually manage or inspect cookies during web scraping or session handling.

Related Post: requests


Next Article
response.encoding - Python requests

N

NaveenArora
Improve
Article Tags :
  • Python
  • Python-requests
Practice Tags :
  • python

Similar Reads

    Python Requests
    Python Requests Library is a simple and powerful tool to send HTTP requests and interact with web resources. It allows you to easily send GET, POST, PUT, DELETE, PATCH, HEAD requests to web servers, handle responses, and work with REST APIs and web scraping tasks.Features of Python Requests LibraryS
    5 min read

    Getting Started with python-requests

    What is Web Scraping and How to Use It?
    Suppose you want some information from a website. Let’s say a paragraph on Donald Trump! What do you do? Well, you can copy and paste the information from Wikipedia into your file. But what if you want to get large amounts of information from a website as quickly as possible? Such as large amounts o
    7 min read
    How to Install Requests in Python - For Windows, Linux, Mac
    Requests is an elegant and simple HTTP library for Python, built for human beings. One of the most famous libraries for Python is used by developers all over the world. This article revolves around how one can install the requests library of Python in Windows/ Linux/ macOS using pip.Table of Content
    7 min read

    HTTP Request Methods

    GET method - Python requests
    Requests library is one of the important aspects of Python for making HTTP requests to a specified URL. This article revolves around how one can make GET request to a specified URL using requests.GET() method. Before checking out GET method, let's figure out what a GET request is - GET Http Method T
    2 min read
    POST method - Python requests
    Requests library is one of the important aspects of Python for making HTTP requests to a specified URL. This article revolves around how one can make POST request to a specified URL using requests.post() method. Before checking out the POST method, let's figure out what a POST request is -   POST Ht
    2 min read
    PUT method - Python requests
    The requests library is a powerful and user-friendly tool in Python for making HTTP requests. The PUT method is one of the key HTTP request methods used to update or create a resource at a specific URI.Working of HTTP PUT Method If the resource exists at the given URI, it is updated with the new dat
    2 min read
    DELETE method- Python requests
    Requests library is one of the important aspects of Python for making HTTP requests to a specified URL. This article revolves around how one can make DELETE request to a specified URL using requests.delete() method. Before checking out the DELETE method, let's figure out what a Http DELETE request i
    2 min read
    HEAD method - Python requests
    Requests library is one of the important aspects of Python for making HTTP requests to a specified URL. This article revolves around how one can make HEAD request to a specified URL using requests.head() method. Before checking out the HEAD method, let's figure out what a Http HEAD request is - HEAD
    2 min read
    PATCH method - Python requests
    Requests library is one of the important aspects of Python for making HTTP requests to a specified URL. This article revolves around how one can make PATCH request to a specified URL using requests.patch() method. Before checking out the PATCH method, let's figure out what a Http PATCH request is -
    3 min read

    Response Methods

    response.headers - Python requests
    The response.headers object in Python's requests library functions as a special dictionary that contains extra information provided by the server when we make an HTTP request. It stores metadata like content type, server details and other headers, such as cookies or authorization tokens. The keys in
    3 min read
    response.encoding - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.elapsed - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.close() - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.content - Python requests
    When you make an HTTP request in Python using the requests library, it returns a response object. One of the most important attributes of this object is response.content, which gives you the raw response body in bytes. This is especially useful when dealing with binary data like images, PDFs, audio
    1 min read
    response.cookies - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.history - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.is_permanent_redirect - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.is_redirect - Python requests
    Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    2 min read
    response.iter_content() - Python requests
    response.iter_content() iterates over the response.content. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain fe
    2 min read
    response.json() - Python requests
    Python requests are generally used to fetch the content from a particular resource URL. Whenever we make a request to a specified URL through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves
    3 min read
    response.url - Python requests
    response.url returns the URL of the response. It will show the main url which has returned the content, after all redirections, if done. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a
    2 min read
    response.text - Python requests
    In Python’s requests library, the response.text attribute allows developers to access the content of the response returned by an HTTP request. This content is always returned as a Unicode string, making it easy to read and manipulate. Whether the response body contains HTML, JSON, XML, or plain text
    3 min read
    response.status_code - Python requests
    response.status_code returns a number that indicates the status (200 is OK, 404 is Not Found). Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object
    2 min read
    response.request - Python requests
    response.request returns the request object that requested this response. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to acc
    2 min read
    response.reason - Python requests
    response.reason returns a text corresponding to the status code. for example, OK for 200, Not Found for 404. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this r
    2 min read
    response.raise_for_status() - Python requests
    We are given a scenario where we use the Python requests library to make HTTP calls, and we want to check if any error occurred during the request. This can be done using the raise_for_status() method on the response object. For example, if we request a page that doesn't exist, this method will rais
    3 min read
    response.ok - Python requests
    response.ok returns True if status_code is less than 400, otherwise False. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to ac
    2 min read
    response.links - Python requests
    response.links returns the header links. To know more about Http Headers, visit - Http Headers. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response objec
    2 min read
    Convert JSON data Into a Custom Python Object
    Let us see how to convert JSON data into a custom object in Python. Converting JSON data into a custom python object is also known as decoding or deserializing JSON data. To decode JSON data we can make use of the json.loads(), json.load() method and the object_hook parameter. The object_hook parame
    2 min read
    Authentication using Python requests
    Authentication refers to giving a user permissions to access a particular resource. Since, everyone can't be allowed to access data from every URL, one would require authentication primarily. To achieve this authentication, typically one provides authentication data through Authorization header or a
    2 min read
    SSL Certificate Verification - Python requests
    Requests verifies SSL certificates for HTTPS requests, just like a web browser. SSL Certificates are small data files that digitally bind a cryptographic key to an organization's details. Often, a website with a SSL certificate is termed as secure website. By default, SSL verification is enabled, an
    2 min read
    Exception Handling Of Python Requests Module
    Python's requests module is a simple way to make HTTP requests. In this article, we’ll use the GET method to fetch data from a server and handle errors using try and except. This will help us understand how to manage situations where the request fails or returns an error."url: Returns the URL of the
    3 min read
    Memory Leak in Python requests
    When a programmer forgets to clear a memory allocated in heap memory, the memory leak occurs. It's a type of resource leak or wastage. When there is a memory leak in the application, the memory of the machine gets filled and slows down the performance of the machine. This is a serious issue while bu
    5 min read

    Projects

    How to get the Daily News using Python
    In this article, we are going to see how to get daily news using Python. Here we will use Beautiful Soup and the request module to scrape the data. Modules neededbs4: Beautiful Soup(bs4) is a Python library for pulling data out of HTML and XML files. This module does not come built-in with Python. T
    3 min read
    How to Build Web scraping bot in Python
    In this article, we are going to see how to build a web scraping bot in Python. Web Scraping is a process of extracting data from websites. A Bot is a piece of code that will automate our task. Therefore, A web scraping bot is a program that will automatically scrape a website for data, based on our
    8 min read
    Send SMS with REST Using Python
    In this article, we are going to see how we can send SMS with REST using Python. The requests library can be used to make REST requests using Python to send SMS.  Approach:You need to first create a REST API KEY for sending SMS using Python Script. We have used Fast2SMS for creating API KEY.You can
    2 min read
    How to check horoscope using Python ?
    In this article, we are going to see how to get a horoscope a day before, on that day as well as the day after using Beautifulsoup. Module needed:bs4: Beautiful Soup(bs4) is a Python library for pulling data out of HTML and XML files. This module does not come built-in with Python. To install this t
    4 min read
    Web Scraping - Amazon Customer Reviews
    In this article, we are going to see how we can scrape the amazon customer review using Beautiful Soup in Python. Module neededbs4: Beautiful Soup(bs4) is a Python library for pulling data out of HTML and XML files. This module does not come built-in with Python. To install this type the below comma
    5 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences