HTTP 302 Found

Overview

The HTTP 302 Found status code indicates that the requested resource is temporarily located at a different URI, as provided by the Location header in the response.

Purpose

The HTTP 302 response is used to perform a temporary redirect. It suggests that the client should use the URI provided in the Location header to access the resource for now, but future requests should still use the original URI.

Usage

Client Behavior:

  1. Send Request: The client sends an HTTP request to a resource’s original URI.
  2. Receive Response: The client receives the HTTP 302 status code with a new URI in the Location header.

Server Behavior:

  1. Temporary Redirect: The server identifies that the requested resource should be temporarily accessed from a different URI.
  2. Send Response: The server sends a 302 Found response with the URI of the temporary location.

Scenarios

  • Temporary Page Relocation: Used for temporary page redirection, like during site maintenance.
  • Short-lived Content: Redirecting to content that is only temporarily relevant or available.

Sequence Diagram

Illustrating the process for an HTTP 302 response:

sequenceDiagram
    participant Client
    participant Server as Web Server

    Note over Client: Client requests an original URL
    Client->>Server: GET /original-page HTTP/1.1
    Note over Server: Server redirects temporarily
    Server->>Client: HTTP/1.1 302 Found
    Server->>Client: Location: /temporary-page

Curl Request and Response Example

Using Curl to request a resource that has been temporarily moved:

curl -i http://example.com/original-page
# Expected response: HTTP/1.1 302 Found
# Location: http://example.com/temporary-page

PHP cURL Request and Response Example

PHP script using cURL to handle a request to a URL that has been temporarily moved:

<?php
$ch = curl_init('http://example.com/original-page');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 302) {
    $newUrl = curl_getinfo($ch, CURLINFO_REDIRECT_URL);
    echo "The resource has been found at: " . $newUrl;
}
curl_close($ch);
?>

Python Request and Response Example

Python script to send a GET request and handle a 302 Found response:

import requests
response = requests.get('http://example.com/original-page')
if response.status_code == 302:
    print("Resource found at:", response.headers['Location'])

Apache Configuration for HTTP 302 Found

Configuring Apache for a temporary redirection of a resource:

<VirtualHost *:80>
    ServerName example.com
    Redirect /original-page http://example.com/temporary-page
</VirtualHost>

NGINX Configuration for HTTP 302 Found

Setting up NGINX to handle temporary redirection of a resource:

server {
    listen 80;
    server_name example.com;
    location /original-page {
        return 302 http://example.com/temporary-page;
    }
}

HTTP 301 Moved Permanently HTTP 303 See Other


 

Free Weekly

Newsletter

Join my weekly newsletter for the latest in tech! You'll get neat coding tricks, trend updates, career advice, SaaS reviews, crypto, bitcoin, and financial tips. All straight to your inbox, designed to keep you ahead.