정의
HTTP 301은 HTTP 상태 코드 중 하나로, "301 Moved Permanently"라고도 하며, 요청된 리소스가 영구적으로 새 위치로 이동했음을 나타내는 서버의 응답 코드이다. 클라이언트(예: 웹 브라우저 또는 검색 엔진 스크래퍼)는 이 응답을 받으면 원래 요청한 URL 대신 Location 헤더에 지정된 새 URL로 자동 리디렉션된다.
개요
HTTP 301 상태 코드는 웹 서버가 클라이언트에게 특정 URI(Uniform Resource Identifier)가 더 이상 유효하지 않으며, 대신 새로운 URI를 사용해야 함을 알리는 데 사용된다. 이 응답은 검색 엔진 최적화(SEO)에 중요한 역할을 하는데, 이를 통해 페이지 이동 시 검색 엔진이 링크 권한(link equity)을 원래 페이지에서 새 페이지로 전송할 수 있기 때문이다. 따라서 웹사이트 관리자는 도메인 변경, 페이지 구조 변경 또는 프로토콜 변경(예: HTTP → HTTPS) 시 HTTP 301 리디렉션을 활용한다.
어원/유래
"HTTP"는 "HyperText Transfer Protocol"의 약자로, 웹 상에서 데이터를 전송하기 위한 프로토콜이다. 상태 코드 "301"은 HTTP/1.0 사양(RFC 1945, 1996년)에서 처음 정의되었으며, 이는 이후 HTTP/1.1 사양(RFC 7231, 2014년 개정)에서도 유지되었다. "301"이라는 번호는 HTTP 상태 코드 체계에서 리디렉션 응답을 나타내는 3xx 계열에 속하며, "Moved Permanently"라는 설명은 리소스의 이동이 영구적임을 의미한다.
특징
- 영구 리디렉션: HTTP 301은 리소스의 이동이 영구적임을 나타내며, 클라이언트와 캐시 서버는 이후 해당 요청에 대해 자동으로 새 위치를 사용하도록 캐시할 수 있다.
- SEO 영향: 검색 엔진은 HTTP 301 리디렉션을 통해 원본 페이지의 순위 요소를 새 페이지로 이전하는 것으로 간주하므로, 사이트 리뉴얼 시 주로 사용된다.
- Location 헤더 필수: 301 응답에는 새로 이동한 리소스의 URI를 포함하는 'Location' HTTP 헤더가 반드시 포함되어야 한다.
- 캐싱 동작: 대부분의 브라우저와 프록시 서버는 301 리디렉션을 자동으로 캐시하여, 이후 동일한 요청에 대해 서버에 다시 문의하지 않고 즉시 리디렉션한다.
- 과도한 사용 시 주의 필요: 잘못 구성된 301 리디렉션 체인(예: A → B → C)은 로딩 시간 지연이나 순환 리디렉션(circular redirect) 문제를 유발할 수 있다.
관련 항목
- HTTP 상태 코드
- HTTP 302 Found (임시 리디렉션)
- HTTP 308 Permanent Redirect
- 리디렉션 (Redirect)
- 검색 엔진 최적화 (SEO)
- RFC 7231 (HTTP/1.1: Semantics and Content)