인프런 커뮤니티 질문&답변

11 1님의 프로필 이미지
11 1

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

3xx - 리다이렉션2

Redirect의 의미

해결된 질문

작성

·

300

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
Redirect가 정확히 무엇을 말하는지 궁금합니다.

 

1.jpg

위 사진에서 판단했을 땐, 서버로부터 3XX 응답을 받았을 때,

웹 브라우저의 URL을 /order에서 /order-result/19로 바꾸는 것이라고 생각했습니다.

 

PRG를 예로 들면

  1. 클라이언트가 Post를 보낸 후 서버로부터 3XX 응답을 받고

  2. Redirect로 URL을 변경한 후

  3. Redirect된 URL로 Get 메서드 패킷을 보낸다.

여기서 2번이 Redirect라고 생각했습니다.

그런데 아래 사진 때문에 Redirect의 정확한 의미가 헷갈립니다.

 

2.jpg

'PRG 이후 리다이렉트'라고 표현되어 있는데

PRG 이후엔 새로고침을 해도 계속 Get 메서드로 패킷이 나가니깐 서버로부터 3XX 응답을 받을 일이 없으니, URL이 다른 URL로 변경되지 않을 것 같은데

 

그럼 제가 위에 적었던 리다이렉트의 의미랑은 조금 다른 것 같아서요.

아니면 새로고침도 리다이렉트에 포함되는 개념인 건가요? 리다이렉트의 의미가 좀 더 넓은 범위인 건지 궁금합니다.

답변 1

2

안녕하세요 11 1 님, 인프런 AI 인턴이에요.

Redirect란 클라이언트가 서버로 요청을 보냈을 때, 서버가 클라이언트에게 새로운 URL로 이동하라는 응답을 주는 것을 말합니다. 이 때, 서버에서 클라이언트로 전달되는 응답은 3XX HTTP 상태 코드 중 하나입니다. 일반적으로, 웹 브라우저는 해당 응답을 받으면 자동으로 새로운 URL로 이동하게 되며, 이를 리다이렉트라고 합니다.

PRG(Post/Redirect/Get)는 웹 애플리케이션에서 일반적으로 사용되는 설계 패턴 중 하나입니다. 이 패턴은 클라이언트가 POST 요청을 보내고 서버가 이에 대한 처리를 완료한 후, 서버가 클라이언트에게 3XX 응답을 보내어 새로운 URL로 리다이렉트하도록 하는 것을 의미합니다. 따라서, PRG 패턴에서 리다이렉트는 POST 요청 처리 이후에 발생하게 됩니다.

새로고침은 리다이렉트와는 조금 다른 개념입니다. 새로고침은 클라이언트가 이미 받은 페이지를 다시 서버에 요청하여 새로운 데이터를 가져오거나 페이지를 다시 표시하는 것을 말합니다. 새로고침은 GET 요청을 사용하며, 리다이렉트와는 의미와 목적이 다릅니다. 따라서, PRG 이후에는 새로고침을해도 URL이 변경되지 않을 수 있습니다.

리다이렉트는 넓은 의미로는 클라이언트의 요청을 다른 URL로 이동시키는 것을 의미할 수 있습니다. 하지만 PRG 패턴에서의 리다이렉트는 POST 요청 처리 이후에 새로운 URL로 이동하는 것을 말합니다. 이 점을 참고하셔서 개념을 분리하여 이해하시면 됩니다.

더 자세한 내용을 알고 싶으시다면, 관련된 서적이나 웹 문서에서 자세히 살펴보시는 것을 추천드립니다. 감사합니다!

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 11 1님

AI 인턴이 충분히 잘 답변을 해주었는데요. 궁금한 부분이 있으면 추가로 질문 남겨주세요.

감사합니다.

11 1님의 프로필 이미지
11 1
질문자

아 이 알림을 못 봤네요 이해됐습니다!

감사합니다.

11 1님의 프로필 이미지
11 1

작성한 질문수

질문하기