Bird
Raised Fist0
Flaskframework~20 mins

Response headers in Flask - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Response Headers Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Flask response header code?
Consider this Flask route that sets a custom response header. What will the client receive in the response headers?
Flask
from flask import Flask, make_response
app = Flask(__name__)

@app.route('/')
def index():
    response = make_response('Hello World')
    response.headers['X-Custom-Header'] = 'MyValue'
    return response
AThe response includes a header 'X-Custom-Header' with value 'Hello World'.
BThe response includes a header 'X-Custom-Header' with value 'MyValue'.
CThe response has no custom headers; only default headers are sent.
DThe code raises a runtime error because headers cannot be set this way.
Attempts:
2 left
💡 Hint
Think about how Flask's make_response allows modifying headers before sending.
📝 Syntax
intermediate
2:00remaining
Which option correctly sets multiple headers in a Flask response?
You want to set two headers: 'Cache-Control' to 'no-cache' and 'X-Powered-By' to 'Flask'. Which code snippet does this correctly?
Flask
from flask import Flask, make_response
app = Flask(__name__)

@app.route('/')
def index():
    response = make_response('Hello')
    # Set headers here
    return response
A
response.headers['Cache-Control'] = 'no-cache'
response.headers['X-Powered-By'] = 'Flask'
B
response.headers.add('Cache-Control', 'no-cache')
response.headers.add('X-Powered-By', 'Flask')
Cresponse.headers = {'Cache-Control': 'no-cache', 'X-Powered-By': 'Flask'}
D
response.set_header('Cache-Control', 'no-cache')
response.set_header('X-Powered-By', 'Flask')
Attempts:
2 left
💡 Hint
Headers behave like a dictionary in Flask response objects.
🔧 Debug
advanced
2:00remaining
Why does this Flask code fail to send the custom header?
Look at this Flask route. Why does the client not receive the 'X-Test' header?
Flask
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    response = 'Hello'
    response.headers['X-Test'] = '123'
    return response
ABecause the header name 'X-Test' is reserved and ignored by Flask.
BBecause Flask automatically strips custom headers unless explicitly allowed.
CBecause headers must be set before returning the string, using a decorator.
DBecause 'response' is a string, not a response object, so it has no headers attribute.
Attempts:
2 left
💡 Hint
Check the type of the response variable before setting headers.
❓ state_output
advanced
2:00remaining
What is the value of the 'Content-Type' header after this Flask route runs?
Given this Flask route, what will be the 'Content-Type' header in the response?
Flask
from flask import Flask, make_response
app = Flask(__name__)

@app.route('/')
def index():
    response = make_response('<h1>Hi</h1>')
    response.headers['Content-Type'] = 'application/json'
    return response
A'application/json'
B'text/html; charset=utf-8'
C'text/plain'
DNo 'Content-Type' header is set
Attempts:
2 left
💡 Hint
Headers set explicitly override defaults.
🧠 Conceptual
expert
2:00remaining
Which statement about Flask response headers is true?
Choose the correct statement about how Flask handles response headers.
AHeaders set on the response object are ignored if the response body is a string.
BFlask automatically merges duplicate headers with the same name into a single header.
CFlask response headers can be modified only before the response is returned, not after.
DFlask requires headers to be set using a special decorator, not directly on the response.
Attempts:
2 left
💡 Hint
Think about when the response is finalized and sent.

Practice

(1/5)
1. What is the purpose of response headers in a Flask web application?
easy
A. To send extra information from the server to the browser
B. To store user data on the server
C. To write data into the database
D. To create HTML content dynamically

Solution

  1. Step 1: Understand what response headers do

    Response headers carry extra information about the response, like content type or caching rules.
  2. Step 2: Identify their role in Flask

    In Flask, response headers are sent from the server to the browser to control how the browser handles the response.
  3. Final Answer:

    To send extra information from the server to the browser -> Option A
  4. Quick Check:

    Response headers = extra info sent to browser [OK]
Hint: Response headers send info from server to browser [OK]
Common Mistakes:
  • Confusing headers with server-side data storage
  • Thinking headers create HTML content
  • Mixing headers with database operations
2. Which of the following is the correct way to add a custom header X-Custom-Header with value Test to a Flask response?
easy
A. response.set_header('X-Custom-Header', 'Test')
B. response.add_header('X-Custom-Header', 'Test')
C. response.header('X-Custom-Header', 'Test')
D. response.headers['X-Custom-Header'] = 'Test'

Solution

  1. Step 1: Recall Flask response header syntax

    In Flask, headers are set by assigning values to keys in the response.headers dictionary.
  2. Step 2: Match the correct syntax

    Only response.headers['X-Custom-Header'] = 'Test' uses the correct dictionary assignment syntax.
  3. Final Answer:

    response.headers['X-Custom-Header'] = 'Test' -> Option D
  4. Quick Check:

    Use dictionary assignment for headers [OK]
Hint: Set headers by assigning to response.headers dict [OK]
Common Mistakes:
  • Using non-existent methods like add_header or set_header
  • Calling response.header() which does not exist
  • Trying to set headers as function calls
3. Given this Flask code snippet, what will be the value of the Content-Type header in the response?
from flask import Flask, make_response
app = Flask(__name__)

@app.route('/')
def index():
    response = make_response('Hello')
    response.headers['Content-Type'] = 'application/json'
    return response
medium
A. text/html
B. application/json
C. text/plain
D. application/xml

Solution

  1. Step 1: Check the header assignment in the code

    The code sets response.headers['Content-Type'] = 'application/json', which overrides the default.
  2. Step 2: Understand the effect on response

    This means the response will have the Content-Type header set to application/json.
  3. Final Answer:

    application/json -> Option B
  4. Quick Check:

    Content-Type header = application/json [OK]
Hint: Headers set in code override defaults [OK]
Common Mistakes:
  • Assuming default Content-Type without checking header override
  • Confusing Content-Type with response body content
  • Ignoring header assignment line
4. What is wrong with this Flask code that tries to add a header?
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    response = 'Hello'
    response.headers['X-Test'] = 'Value'
    return response
medium
A. You cannot add headers to a string response directly
B. The header key must be lowercase
C. The header value must be an integer
D. Flask does not support custom headers

Solution

  1. Step 1: Identify the response type

    The response is a plain string, not a response object.
  2. Step 2: Understand header assignment requirements

    Headers can only be set on response objects, not on strings.
  3. Final Answer:

    You cannot add headers to a string response directly -> Option A
  4. Quick Check:

    Headers require response object, not string [OK]
Hint: Headers need response object, not plain string [OK]
Common Mistakes:
  • Trying to set headers on string instead of response
  • Thinking header keys must be lowercase
  • Believing Flask disallows custom headers
5. You want to add a header Cache-Control with value no-store to all responses in your Flask app. Which is the best way to do this?
hard
A. Set Cache-Control in the HTML meta tags
B. Add response.headers['Cache-Control'] = 'no-store' inside every route function
C. Use a @app.after_request function to add the header to all responses
D. Modify the Flask source code to add the header globally

Solution

  1. Step 1: Understand the goal

    You want to add the header to all responses automatically, not manually in each route.
  2. Step 2: Identify Flask feature for global response modification

    The @app.after_request decorator lets you modify every response before sending it.
  3. Step 3: Evaluate options

    The @app.after_request decorator adds the header to every response automatically, which is efficient and clean.
  4. Final Answer:

    Use a @app.after_request function to add the header to all responses -> Option C
  5. Quick Check:

    Use after_request to set headers globally [OK]
Hint: Use @app.after_request to add headers globally [OK]
Common Mistakes:
  • Adding header manually in every route (Option B)
  • Trying to set headers in HTML meta tags (Option C)
  • Editing Flask source code (Option D)
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard