페이지 이동, 리디렉션, 리다이렉트... 이름도 참 많죠??? 모두 다 현재 페이지를 다른 페이지로 이동함을 의미합니다. 페이지 이동은 크게 두 가지로 구분이 가능하죠... 서버측 또는 클라이언츠 리디렉션인 301, 그리고 302 방법! 그 둘의 차이점은 무엇이고 큰 특징은 무엇인지 알아보겠습니다.


# 301, 302 페이지 리디렉션 알아보기

우선 언제 리디렉션, 페이지 이동이 필요할까요? 여러 이유가 있겠지만 아래의 경우에도 많이 사용됩니다.

! 기존의 페이지의 주소가 새롭게 변경된 경우만약 기존의 페이지 주소가 다른 주소로 이동된 경우 301 redirect 방법이 사용됩니다.

! 불필요하거나 잘못된 서브 주소를 하나로 이동시키는 경우예를 들어 아래의 A, B, C 모두 같은 페이지의 경로로 이동하는 경우
A: http://webisfree.com/
B: http://blog.webisfree.com/
C: http://en.webisfree.com/


! 로그인, 인증 등의 목적으로 다른 주소로 이동이 필요한 경우인증 서버가 따로 있거나 https 프로토콜 등등의 이유로 리다이렉트가 필요할 수 있습니다.

기타 여러가지 이유가 있을 수 있겠죠.. 그럼 이 둘의 차이점은 무엇일까요? 아래를 봐주세요.

! 301, 302 리디렉션의 차이점 알아보기간략하게 나타내면 아래와 같습니다.

  • 301 리디렉션 : 영구적인 방법으로 Redirect으로 서버사이드 방법의 이동
  • 302 리디렉션 : 일시적인 방법으로 Redirect으로 스크립트나 html 태그를 이용한 방법

둘 다 Redirect을 수행하므로 기능면에서는 거의 동일하나 사용방법 및 그 기능은 상당한 차이가 있습니다. 우선, 301의 경우 서버사이드 및 클라이언트 언어에서 어떤 코드도 수행하지 않고 바로 리디렉션됩니다. 이 때문에 리디렉션에 해당하는 코드는 페이지 코드의 최상단에 위치합니다. 그렇지 않은 경우 페이지 오류로 301 방법은 실행되지 않고 에러가 발생합니다.


# 301 리디렉션 방법이 필요한 이유

리디렉션을 왜 302 클라이언트측 방법이 아닌 서버측 방법을 사용할까요? 첫번째로 검색엔진에는 불분명한 페이지 이동이 302로 리디렉션 되는 경우 SEO(검색엔진 최적화)에 페널티가 있을 수 있다고 알려져있습니다. 사실 SEO는 방문자의 페이지 뷰수와 이탈율 등등 다양한 지표를 통해 페이지 스코어에 영향을 주는데 302 리디렉션은 방문자의 의도가 아닌 강제에 가까운 페이지 이동입니다. 그렇기 때문에 불필요한 302 방법의 페이지 이동은 피해야 할 것입니다.


! 301, 302 페이지 리디렉션 방법간단한 페이지 이동방법입니다. 서버 사이드의 경우 페이지 언어에 따라 조금씩 상이하여 여기서는 php를 예로 들겠습니다.

@ 301redirect.php
<?php
  header('location: http://webisfree.com/');
?>
// php 301 방법으로 클라이언트에 정보를 전송하기 이전에 수행

아래는 302 자바스크립트를 사용한 방법입니다.
@ 302redirect.js
window.open('http://webisfree. com', '_self');
location.replace('http://webisfree.com/');
// open() 그리고 location 내장객체를 사용한 방법

사용된 서버 리디렉션은 현재 페이지의 도큐멘트에 어떠한 정보도 출력해서는 안됩니다. 출력되지 않는 다른 명령어는 사용 가능합니다.