301,302 리다이렉트란?

Posted by 대혀니_
2016. 1. 7. 23:43 IT/잡담

우선 이 이야기를 하기전에 리다이렉트가 왜 필요한지부터 이야기 해보겠습니다. 두가지 종류가 있겠는데요.


1) 기존의 페이지의 주소가 새롭게 변경된 경우 (가장 많은 리디렉션 조치의 이유)

2) 불필요하거나 잘못된 서브 주소를 하나로 이동시키는 경우. 예를 들어 아래의 A, B, C 모두 같은 페이지를 가르키는 경우


위와 같은 경우에 리디렉션이 필요하다 하겠습니다. 그러면 이 둘의 차이점은 무엇일까요? 아래를 보시면...


1. 301 리디렉션 : 영구적인 방법으로 Redirect으로 서버사이드(Server-Side) 방법의 이동

2. 302 리디렉션 : 일시적인 방법으로 Redirect으로 스크립트나 html 태그를 이용한 방법


둘 다 Redirect을 수행하므로 기능면에서는 거의 동일하나 사용방법과 효과면에서 상당한 차이가 있습니다.

우선, 301의 경우 서버사이드 언어에서 다른 코드를 수행하지 않고 리디렉션됩니다.


이 때문에 리디렉션이 수행되기 이전에는 어떠한 코드도 클라이언트측에 전송되지 말아야 하므로 해당 페이지 코드의 최상단에 위치합니다. 

그렇지 않은 경우 페이지 오류로 301 방법은 실행되지 않습니다.


301 방법이 필요한 이유

검색엔진에는 불분명한 페이지 이동의 경우 SEO(검색엔진 최적화)에 페널티를 가져온다고 합니다. 사실 SEO는 방문자의 페이지 뷰수와 이탈율의 지표를 통해 페이지 스코어에 영향을 주는데 302 리디렉션은 방문자의 의도에 의한 페이지 이동이 아니기 때문에 실질적인 정보 수집이 곤란합니다. 그렇기 때문에 불필요한 302 방법의 페이지 이동은 피해야 할 것입니다.


301 리다이렉트를 하려면 서버사이드 쪽에서 처리하는 파일 (php jsp htacess 등) 에서 처리해야 합니다.

예시로 php에서 처리하려면


<?php 

header("HTTP/1.1 301 Moved Permanently"); 

header("Location: http://www.New-Website.com"); 

?>


과 같이 처리하면 됩니다.