inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3xx - 리다이렉션2

Redirect의 의미

해결된 질문

390

11 1

작성한 질문수 147

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

인프런 AI 인턴

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

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

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

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

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

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

1

김영한

안녕하세요. 11 1님

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

감사합니다.

1

11 1

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

감사합니다.

캐시무효화시 그냥 no-store만 넣어되지 않나요?

0

71

2

API의 헤더와 바디에 대한 문의 입니다.

0

70

2

수정폼과 수정

0

66

1

쿠키에 대해 질문드려요!

0

88

2

서버에서 캐시 검증 헤더를 직접 처리해야 하나요?

0

86

1

http api get, post 멱등

0

40

1

컬렉션의 개념

0

49

1

시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?

0

54

1

PATCH 는 PUT처럼 멱등이여야 하지 않나요?

0

81

1

리소스 질문드립니다

0

56

1

IP 패킷 질문입니다.

0

59

1

html from, http api

0

75

2

브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요

0

120

1

stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.

0

99

1

URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?

0

141

1

host와 port

0

106

1

tcp/ip는 연결을 유지? 아니면 유지하지 않음?

0

145

1

다음 강의 커리큘럼 질문!!

0

130

2

캐시 개념에 대해서 설명하시지는 않으시는건가요?

0

113

1

클라이언트가 patch, delete 요청 시 알아야 하는 url

0

91

1

html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유

0

168

2

비 연결성(connectionless) 강의에서 질문입니다~

0

140

1

PATCH를 사용하지 못할 때 왜 POST?

0

162

2

협상과 우선순위3 질문드립니다.

1

130

1