Bird
Raised Fist0
Rest APIprogramming~10 mins

301 and 302 redirects in Rest API - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - 301 and 302 redirects
Client sends HTTP request
↓
Server checks resource location
↓
Resource moved
↓
Send 301 Redirect
↓
Client updates URL
↓
Client requests new URL
When a client requests a URL, the server can respond with a 301 or 302 redirect to tell the client the resource has moved permanently or temporarily, guiding the client to the new URL.
Execution Sample
Rest API
GET /old-page HTTP/1.1
Host: example.com

HTTP/1.1 301 Moved Permanently
Location: /new-page

GET /old-temp HTTP/1.1
Host: example.com

HTTP/1.1 302 Found
Location: /temp-page
This shows a client requesting two URLs and the server responding with 301 and 302 redirects pointing to new locations.
Execution Table
StepRequest URLServer Response CodeLocation HeaderClient Action
1/old-page301/new-pageUpdate URL to /new-page and request it
2/new-page200-Display content of /new-page
3/old-temp302/temp-pageRequest /temp-page but keep /old-temp as original URL
4/temp-page200-Display content of /temp-page
💡 After final 200 OK response, client displays the requested content.
Variable Tracker
VariableStartAfter Step 1After Step 3Final
Requested URL/old-page/new-page/temp-page/temp-page
Response Code-301302200
Location Header-/new-page/temp-page-
Key Moments - 2 Insights
Why does the client update the URL after a 301 but not after a 302?
Because 301 means the resource moved permanently, so the client updates the URL (see execution_table step 1). For 302, the move is temporary, so the client requests the new URL but keeps the original URL for future requests (see step 3).
What happens if the client ignores the Location header?
The client will not request the new URL and will not get the updated resource, so it may show an error or old content. The Location header tells the client where to go next (see execution_table Location Header column).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the client’s requested URL after step 1?
A/old-page
B/new-page
C/old-temp
D/temp-page
💡 Hint
Check the 'Requested URL' variable after step 1 in variable_tracker.
At which step does the client receive a 302 redirect?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Server Response Code' column in execution_table.
If the server changed the 302 to a 301 in step 3, what would the client do differently?
AKeep requesting /old-temp URL
BUpdate URL to /temp-page permanently
CIgnore the Location header
DRequest /new-page instead
💡 Hint
Recall the difference between 301 and 302 redirects explained in key_moments.
Concept Snapshot
301 and 302 Redirects:
- 301 = Moved Permanently: client updates URL permanently.
- 302 = Found (Temporary): client uses new URL temporarily.
- Server sends Location header with new URL.
- Client follows Location to get resource.
- 301 affects bookmarks and SEO; 302 does not.
Full Transcript
When a client requests a web resource, the server can respond with a redirect status code. A 301 redirect means the resource has moved permanently, so the client updates its stored URL and requests the new location. A 302 redirect means the resource is temporarily at a new location, so the client requests the new URL but keeps the original URL for future requests. The server includes a Location header with the new URL in both cases. The client follows this header to get the resource. This process helps keep links working when websites change structure.

Practice

(1/5)
1. What does a 301 redirect indicate in a REST API?
easy
A. The resource has been deleted.
B. The resource is temporarily unavailable.
C. The resource has moved permanently to a new URL.
D. The resource requires authentication.

Solution

  1. Step 1: Understand the meaning of 301 redirect

    A 301 redirect means the resource has moved permanently to a new location.
  2. Step 2: Compare with other options

    Other options describe different HTTP statuses, not 301 redirect.
  3. Final Answer:

    The resource has moved permanently to a new URL. -> Option C
  4. Quick Check:

    301 redirect = permanent move [OK]
Hint: 301 means permanent move, 302 means temporary move [OK]
Common Mistakes:
  • Confusing 301 with 302 redirect
  • Thinking 301 means resource deleted
  • Assuming 301 is for authentication
2. Which HTTP status code is used for a temporary redirect?
easy
A. 301
B. 302
C. 404
D. 500

Solution

  1. Step 1: Identify status codes for redirects

    302 is the standard status code for temporary redirects.
  2. Step 2: Eliminate other codes

    301 is permanent redirect, 404 is not found, 500 is server error.
  3. Final Answer:

    302 -> Option B
  4. Quick Check:

    Temporary redirect = 302 [OK]
Hint: 302 means temporary redirect, not 301 [OK]
Common Mistakes:
  • Mixing 301 and 302 codes
  • Choosing 404 or 500 by mistake
  • Not knowing redirect codes
3. What will be the HTTP status code returned by this REST API snippet?
return Response(status=301, headers={'Location': 'https://newsite.com'})
medium
A. 301 Moved Permanently
B. 302 Found
C. 200 OK
D. 404 Not Found

Solution

  1. Step 1: Analyze the status code in the response

    The code explicitly sets status=301, which means permanent redirect.
  2. Step 2: Check the Location header

    The Location header points to the new URL, confirming redirect behavior.
  3. Final Answer:

    301 Moved Permanently -> Option A
  4. Quick Check:

    Status 301 with Location = permanent redirect [OK]
Hint: Status 301 with Location header means permanent redirect [OK]
Common Mistakes:
  • Assuming 200 OK without checking status
  • Confusing 301 with 302
  • Ignoring Location header
4. Identify the error in this code snippet for a temporary redirect:
return Response(status=301, headers={'Location': 'https://temp.example.com'})
medium
A. Location header is missing.
B. Headers should not include Location.
C. Status code 301 is correct for temporary redirect.
D. Status code should be 302 for temporary redirect.

Solution

  1. Step 1: Check status code for temporary redirect

    Temporary redirects require status code 302, not 301.
  2. Step 2: Verify headers

    Location header is present and correct, so no error there.
  3. Final Answer:

    Status code should be 302 for temporary redirect. -> Option D
  4. Quick Check:

    Temporary redirect = 302, not 301 [OK]
Hint: Use 302 status for temporary redirects, not 301 [OK]
Common Mistakes:
  • Using 301 instead of 302 for temporary redirects
  • Omitting Location header
  • Misunderstanding redirect status codes
5. You want to permanently redirect old API endpoints to new ones but keep temporary redirects for beta features. Which status codes should you use for each case?
hard
A. 301 for old endpoints, 302 for beta features
B. 302 for old endpoints, 301 for beta features
C. 404 for old endpoints, 302 for beta features
D. 500 for old endpoints, 301 for beta features

Solution

  1. Step 1: Determine redirect type for old endpoints

    Old endpoints moved permanently, so use 301 status code.
  2. Step 2: Determine redirect type for beta features

    Beta features are temporary, so use 302 status code.
  3. Final Answer:

    301 for old endpoints, 302 for beta features -> Option A
  4. Quick Check:

    Permanent = 301, Temporary = 302 [OK]
Hint: Permanent redirect = 301, temporary redirect = 302 [OK]
Common Mistakes:
  • Swapping 301 and 302 codes
  • Using error codes instead of redirects
  • Not distinguishing permanent vs temporary
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