
"Get, post, redirect" 패턴은 사용자가 웹 페이지를 제출하고 서버가 이를 처리하고 응답을 반환하는 과정에서 사용된다. 이 패턴은 일반적으로 웹 애플리케이션에서 사용자 인터페이스를 보완하는 데 사용된다고 한다.
(웹 애플리케이션에서 사용되는 HTTP 메서드와 기능을 나타낸다)
각 특징, 사용방법 및 어떤 동작을 할 때 사용하는지 알아보자.
1. GET
- 정보를 요청하기 위한 메소드이다.
- 서버로부터 데이터를 요청하고 응답으로 데이터를 받아온다.
- 데이터를 URL의 쿼리 매개변수나 경로 변수로 전달할 수 있다.
- 요청이 캐시될 수 있으며, 브라우저 히스토리에 기록된다.
- 안전한 연산으로 간주되며, 동일한 요청을 여러 번 보내더라도 동일한 결과를 얻어야 한다.
2. POST
- 서버에 데이터를 제출하기 위한 메소드이다.
- 서버에 데이터를 보내고, 처리 및 저장을 요청한다.
- 보통 HTML <form> 을 통해 데이터를 전송하며, 요청 본문에 데이터를 포함시킨다.
- 요청은 캐시되지 않으며, 브라우저 히스토리에 기록되지 않는다.
- 서버에 상태 변경을 요청하거나 새로운 리소스를 생성하는데 사용된다.
3. REDIRECT
- 리소스의 위치가 변경되었음을 클라이언트에 알리는 메커니즘이다.
- 서버는 클라이언트에게 새로운 URI로 리다이렉션하도록 요청한다.
- 클라이언트는 새로운 URI로 다시 요청을 보내야 한다.
- 주로 웹 페이지의 이동이나 페이지 갱신에 사용된다.
Get, Post, Redirect 패턴에서 Redirect가 많이 어렵게 다가와 추가 공부를 했다.
"Redirect "는 사용자가 페이지를 제출하고 서버가 이를 처리 한 후 새로운 페이지로 사용자를 리디렉션하는 것을 의미한다. 이 패턴을 사용하면 사용자가 새로 고침 버튼을 클릭하거나 다시 제출 버튼을 클릭하여 같은 데이터를 두 번 제출하는 것을 방지 할 수 있다.
예를 들어, 사용자가 로그인 페이지에서 로그인을 시도하면 서버는 제출된 로그인 정보를 처리한다. 그러나 사용자가 다시 새로 고침 버튼을 클릭하면, 서버는 동일한 로그인 정보를 다시 처리하고 이중 제출 문제가 발생할 수 있다. 이런 경우, 서버는 "Redirect "를 사용하여 사용자를 로그인 후 랜딩 페이지로 리디렉션하여 이중 제출 문제를 해결한다.
따라서 "Get, Post, Redirect " 패턴을 사용하면 웹 애플리케이션에서 사용자 인터페이스를 개선하고 사용자 경험을 향상시킬 수 있다.
'Spring Boot' 카테고리의 다른 글
| JPA Project 근황 (1) | 2023.08.25 |
|---|---|
| JPA 단 방향(연관 관계) (0) | 2023.06.27 |
| 타임리프(Timeleaf) (2) | 2023.05.01 |
| MVC 2 (1) | 2023.05.01 |
| Spring 의존성 주입 (0) | 2023.04.30 |