308 Permanent Redirect는 대상 리소스에 Location으로 지정된 새로운 영구 URL이 있으며, 클라이언트가 메서드나 본문을 바꾸지 않고 그 URL로 요청을 다시 보내야 한다는 뜻입니다. 307이 302에 대응하듯, 308은 301 Moved Permanently에 대응하는, 메서드를 유지하는 코드입니다. RFC 7238(2014)에서 도입되어 RFC 7538(2015)에서 정식 표준이 되었고, 현재는 RFC 9110에 포함되어 있습니다.
308은 301과 마찬가지로 기본적으로 캐시할 수 있으므로, 브라우저는 이를 기억했다가 다음번에는 곧바로 새 URL로 이동합니다. 현재의 모든 브라우저와 주요 크롤러, 일반적인 HTTP 라이브러리가 308을 지원하며, Windows 7의 Internet Explorer 같은 아주 오래된 클라이언트만 지원하지 않았습니다.
응답 예시
HTTP/1.1 308 Permanent Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: /docs/
Content-Type: text/plain; charset=utf-8
Content-Length: 21
Redirecting to /docs/ SEO 및 리디렉션 검사
Google은 308을 301과 같이 취급합니다. 대상이 새 표준 URL이라는 강력한 신호이므로, 검색결과에서 새 URL이 예전 URL을 대체합니다. 메서드를 유지해야 하는 경우(API, 폼 엔드포인트)나 사용 중인 플랫폼이 기본으로 308을 쓰는 경우에 308을 사용하세요. 일반적인 페이지 이전이라면 SEO 측면에서 301과 308은 똑같이 작동합니다.
Next.js나 Vercel 같은 플랫폼은 영구 리디렉션과 후행 슬래시 정규화에 308을 사용합니다. 301 리디렉션 검사 도구는 각 홉이 영구(301 또는 308)인지 임시인지 보여 주며, 후행 슬래시 검사 도구는 두 가지 URL 변형을 모두 테스트합니다.
주요 원인과 사용 사례
- Next.js의
permanent: true, Vercel 리디렉션 규칙, CDN 규칙 같은 프레임워크의 영구 리디렉션입니다. - 요청 메서드를 유지해야 하는 후행 슬래시 정규화나 대소문자 정규화입니다.
- API 엔드포인트가 영구적으로 옮겨졌지만 클라이언트가 여전히 예전 URL로
POST나PUT을 보냅니다. - HTTP→HTTPS 업그레이드에 308을 사용하는 플랫폼과 프록시입니다.