302

Found

개요

302 Found는 리소스가 일시적으로 다른 URL에 있음을 알리며, 원래 URL은 계속 유효하니 앞으로도 그 주소를 사용하라는 뜻입니다. 영구 이전이 아니므로 검색엔진은 링크 자산을 새 URL로 옮기지 않습니다.

역사적으로 많은 브라우저가 302 리다이렉트 시 POST를 GET으로 바꿔 처리해 왔기 때문에, 메서드 보존이 필요한지 여부에 따라 303이나 307을 구분해 쓰는 것이 중요합니다.

언제 발생하나

요청 / 응답 예시

요청
GET /dashboard HTTP/1.1
Host: app.example.com
Cookie: session=none
응답
HTTP/1.1 302 Found
Location: /login
Content-Type: text/html

<h1>Found</h1><p>Redirecting to <a href="/login">/login</a>.</p>

코드로 보기

app.get('/dashboard', (req, res) => {
  if (!req.session.user) return res.redirect(302, '/login');
  res.render('dashboard');
});
from flask import redirect
@app.get('/dashboard')
def dash():
    if not session.get('user'):
        return redirect('/login')  # 302 by default

실무 참고

관련 상태코드

관련 헤더

스펙 근거