302 Found는 대상 리소스가 일시적으로 다른 URL(Location 헤더에 지정)에 있다는 뜻입니다. 이동이 일시적이므로 클라이언트는 이후 요청에도 원래 URL을 계속 사용해야 합니다.
302는 기본적으로 캐시되지 않으며, Cache-Control이나 Expires가 명시적으로 허용할 때만 재사용됩니다. 그래서 로그인하지 않은 사용자를 로그인 페이지로 보내는 것처럼 방문자의 상황에 따라 달라지는 리디렉션에 안전하게 쓸 수 있습니다.
301과 마찬가지로 사용자 에이전트는 302를 따라갈 때 POST를 GET으로 바꿀 수 있으며, 브라우저는 실제로 그렇게 합니다. 이는 HTTP/1.0이 의도한 동작이 아니었고, 그래서 HTTP/1.1에서 항상 GET으로 바꾸는 303 See Other와 메서드를 절대 바꾸지 않는 307 Temporary Redirect가 추가되었습니다. 지금도 많은 프레임워크가 302를 기본 리디렉션으로 사용합니다.
응답 예시
HTTP/1.1 302 Found
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/login?next=%2Faccount
Cache-Control: no-store
Content-Length: 0 SEO 및 리디렉션 검사
Google은 302를 대상 URL이 표준 URL이 되어야 한다는 약한 신호로 취급하므로, 보통 원래 URL을 색인과 검색결과에 유지합니다. 짧은 프로모션, 점검, A/B 테스트처럼 정말 일시적인 상황이라면 이것이 올바른 동작입니다. 오랫동안 유지된 302는 결국 영구 리디렉션처럼 취급될 수도 있지만, 이에 의존하지 마세요. 영구 이전에는 301이나 308을 사용하세요.
흔한 SEO 버그는 사이트 전체의 HTTP→HTTPS 리디렉션이나 도메인 리디렉션이 실수로 302로 설정된 경우입니다. 리디렉션 체인 검사 도구와 301 리디렉션 검사 도구는 임시 홉을 따로 표시하므로 쉽게 찾아낼 수 있습니다.
주요 원인과 사용 사례
- 로그인 화면이 로그인하지 않은 방문자를
/login?next=...로 보냅니다. - 언어, 국가, 기기 감지 기능이 방문자를 현지화된 버전이나 모바일 버전으로 보냅니다. 모바일·데스크톱 리디렉션 비교 도구로 휴대폰과 데스크톱이 각각 어디로 가는지 비교하세요.
- 클릭 추적 링크와 제휴 링크는 모든 클릭이 추적기를 거치도록 302를 사용합니다. 단축 URL 원본 확인 도구로 실제 목적지를 확인하세요.
- 영구 이전을 실수로 302로 설정했습니다. 예를 들어 상태 코드를 지정하지 않은 Apache의
Redirect지시어나, 많은 프레임워크에서 기본값이 302인redirect()헬퍼가 원인입니다. 301이나 308로 바꾸세요.