soft IT life

'웹 개발자' 기술면접 예상 질문2 본문

기타

'웹 개발자' 기술면접 예상 질문2

softPattern 2023. 8. 8. 01:04

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으로 
    1. 데이터 중복 제출 방지: POST 요청을 처리한 후에 사용자가 페이지를 새로고침하면, 기존 POST 요청이 다시 발생할 수 있습니다. 이는 같은 데이터가 중복으로 처리되거나 부작용이 발생할 수 있습니다. 리다이렉트를 통해 GET 요청으로 변경함으로써 이런 중복 요청을 방지할 수 있습니다.
    2. 사용자 경험 개선: POST 요청의 결과를 페이지에 표시한 후에 사용자가 해당 페이지를 새로 고치면 브라우저는 사용자에게 "새로고침 후에 데이터를 다시 제출하겠습니까?"와 같은 경고를 보내는 경우가 있습니다. 이는 사용자에게 혼란을 줄 수 있고, 의도치 않게 중복 제출을 유발할 수 있습니다. 리다이렉트를 사용하여 이러한 경고를 피하고 사용자 경험을 개선할 수 있습니다.
    3. 브라우저 히스토리 관리: POST 요청은 브라우저의 히스토리에 남지 않습니다. 따라서 사용자가 뒤로 가기 버튼을 누르면 POST 요청에 대한 정보가 사라져서 문제가 발생할 수 있습니다. 리다이렉트를 통해 GET 요청으로 변경하면, 브라우저 히스토리에 GET 요청이 남아있어서 사용자가 뒤로 가기를 할 때 문제를 예방할 수 있습니다.
    4. 클린 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