soft IT life
'웹 개발자' 기술면접 예상 질문2 본문
1. Redirect 와 Forward의 차이에 대해서 설명해주세요.
참고 https://doublesprogramming.tistory.com/63
- Forward
- Request가 들어와서 Response 될때까지 요청 정보(URI)가 그대로 유지된다.
- Web container 차원에서의 페이지 이동.(서버) -> 동일한 Web container에 있는 페이지로만 이동이 가능하다.
- 실제로 웹 브라우저(클라이언트)는 다른 페이지로 이동했는지 알 수 없다. 최초 호출한 URL만 표시되고, 이동한 URL정보는 볼 수가 없다. -> POST요청을 Forward로 보내면 안되는 이유? 최초의 요청정보가 더이상 유효하지 않기 때문에.
- Redirect
- Web container가 웹 브라우저에게 다른 페이지로 이동하라는 명령을 내린다.
- URL을 지시된 주소로 바꾼다.
- 새로운 페이지에서는 Request, Response 객체가 새롭게 생성된다. 요청이 유지되지 않는다.
*PRG 패턴
- POST 요청은 Redirect - GET으로
-
- 데이터 중복 제출 방지: POST 요청을 처리한 후에 사용자가 페이지를 새로고침하면, 기존 POST 요청이 다시 발생할 수 있습니다. 이는 같은 데이터가 중복으로 처리되거나 부작용이 발생할 수 있습니다. 리다이렉트를 통해 GET 요청으로 변경함으로써 이런 중복 요청을 방지할 수 있습니다.
- 사용자 경험 개선: POST 요청의 결과를 페이지에 표시한 후에 사용자가 해당 페이지를 새로 고치면 브라우저는 사용자에게 "새로고침 후에 데이터를 다시 제출하겠습니까?"와 같은 경고를 보내는 경우가 있습니다. 이는 사용자에게 혼란을 줄 수 있고, 의도치 않게 중복 제출을 유발할 수 있습니다. 리다이렉트를 사용하여 이러한 경고를 피하고 사용자 경험을 개선할 수 있습니다.
- 브라우저 히스토리 관리: POST 요청은 브라우저의 히스토리에 남지 않습니다. 따라서 사용자가 뒤로 가기 버튼을 누르면 POST 요청에 대한 정보가 사라져서 문제가 발생할 수 있습니다. 리다이렉트를 통해 GET 요청으로 변경하면, 브라우저 히스토리에 GET 요청이 남아있어서 사용자가 뒤로 가기를 할 때 문제를 예방할 수 있습니다.
- 클린 URL 유지: POST 요청 후에 리다이렉트를 사용하여 GET 요청을 보내면 URL이 간결해지고, 사용자에게 더 읽기 쉬운 URL을 제공할 수 있습니다.
'기타' 카테고리의 다른 글
AWS를 이용하여 웹 서버 구축해보기 (0) | 2023.08.22 |
---|---|
'웹 개발자' 기술면접 예상 질문3 (0) | 2023.08.22 |
'웹 개발자' 기술면접 예상 질문1 (0) | 2023.08.04 |
세계 11개국 시총 1위 기업 (0) | 2023.04.22 |
AIaaS 04.17 월 (0) | 2023.04.17 |