서버 측 리다이렉트가 효율이 더 좋은 이유
서버와 클라이언트 측 리다이렉트 비교
리다이렉트 방법은 서버, 클라이언트 2가지가 있습니다. 두 방식의 동작순서는 다음 링크에서 확인해보실 수 있습니다.
이번에는 두 동작 방식에서 오는 성능 또는 다른 이점을 확인하여 어느 방식이 더 효율적인가를 알아보겠습니다.
서버 측 리다이렉트가 효율이 더 좋다.
결론부터 말씀드리면 서버 측에서 처리하는 게 여러모로 이점이 많습니다.
- 네트워크 요청 수 차이
- 불필요한 데이터 전송 차이 (서버 부하)
- 리다이렉트 속도
- 검색엔진(SEO) 차이
(1) 네트워크 요청 수 차이
먼저, 클라이언트 측 리다이렉트를 설명하겠습니다.
- 클라이언트가 서버로 요청합니다.
- 서버가 요청에 맞는 Html 응답을 보냅니다.
- 응답받은 클라이언트(브라우저)는 html을 렌더링 하고, JavaScript를 실행해 새로운 URL로 이동합니다.
- 서버는 새로운 URL에 대해 다시 응답합니다.
다음은 서버 측 리다이렉트 입니다.
- 사용자가 서버에 원래 페이지를 요청합니다.
- 서버가 즉시
3xx
상태 코드(예: 301, 302)와 새로운 URL을 응답합니다. - 브라우저는 HTML을 다운로드하지 않고 바로 새 URL로 이동합니다.
진행 과정만 봐도 서버가 클라이언트에 비해 적다는 것을 볼 수 있습니다.
클라이언트 측은 총 2번, 서버는 1.5번 요청을 서버에서 처리하게 되면 불필요한 전송을 줄일 수 있습니다. 요구사항에 따라 다르겠지만, 서버에서 끝내면 되는 것을 굳이 클라이언트까지 가서 불필요한 전송을 하는 경우는 잘 못본 것 같네요.
(2) 불필요한 데이터 전송 차이 이유 (서버 부하)
클라이언트 측은 리다이렉트는? 서버가 HTML 페이지를 응답해야 하므로 불필요한 데이터 전송을 하게 되겠죠. 서버 측 리다이렉트는 HTTP 응답만 반환하면 됩니다.
(3) 리다이렉트 속도
클라이언트 측 리다이렉트는 당연히 응답을 받은 후 html 렌더링과 JavaScript가 실행되어야 하니 속도가 느려질 겁니다.
하지만, 서버 측 리다이렉트는 브라우저가 3xx 응답을 받게 되면 즉시 새로운 URL로 이동합니다.
(4) 검색 엔진 최적화(SEO)
마지막은 어떤 사이트든지 구글, 네이버 등 검색 결과에 노출되기를 원하겠죠. 그럴려면 검색 엔진에 최적화 되어야하는데 리다이렉트도 연관이 있는 것 같습니다.
검색 엔진 크롤러는 window.location.href
같은 JavaScript 기반 리다이렉트를 잘 따라가지 못할 수도 있다고 합니다.
반면, 301 Moved Permanently
또는 302 Found
같은 서버 측 리다이렉트는 검색 엔진 친화적이라고 GPT는 설명하고 있네요.
그래서 한번 찾아보니 구글은 다음과 같이 우선순위를 정하고 있었습니다.
📌 결론: 서버 측 리다이렉트는 성능, 서버 부하 감소, SEO, UX 모든 면에서 더 효율적입니다.