ㅇ GET/POST 이해하기

 

1) GET 란?

 - URL에 데이터를 포함시켜 요청

 - 데이터를 헤더에 포함하여 전송

 - URL에 데이터가 노출되어 보안에 취약

 - 캐싱할 수 있음

 => 주로 조회할때만 사용

 

2) POST 란?

 - URL에 데이터를 노출하지 않고 요청

 - 데이터를 바디에 포함

 - URL에 데이터가 노출되지 않아 GET방식보다 보안이 높음

 - 캐싱할 수 없음

=> 주로 노출되면 안되는 데이터를 저장할 때 사용

 

 

HttpMethod

: 다음의 각 메소드들은 HttpMethod에 매칭됩니다.

1) PostMapping

2) GetMapping

3) PutMapping

4) DeleteMapping

5) PatchMapping

 

 

 

ㅇ RequestMapping

1) 스프링부트 애플리케이션이 실행되면 애플리케이션에서 사용할 bean들을 담을 ApplicationContext를 생성하고 초기화합니다.

2) @RequestMapping 이 붙은 메서드들이 핸들러에 등록되는 것은 Application refresh되는 과정에서 일어납니다.

   refresh과정에서 Spring Application 구동을 위해 많은 Bean들이 생성되고,

  그 중 하나가 RequestMappingHandlerMapping 입니다. 이 Bean은 우리가 @RequestMapping 으로 등록한 메서드들을 가지고      있다가 요청이 들어오면 Mapping해주는 역할을 합니다.

3) Bean으로 등록된 HandlerMapping이 변수들을 찾아서 Adapter를 거쳐 실행합니다.

 

 

 

ㅇ Handler

: Spring MVC에서는 핸들러가 @Controller클래스를 의미합니다.

@GetMapping / @PostMapping 을 핸들러 메서드라고 부릅니다.

결국 Handler Mapping 이란 사용자의 요청과 이 요청을 처리하는 Handler를 매핑해주는 역할을 하는 것입니다.

 

 

 

 

ㅇ HandlerAdapter

:  스프링 부트가 아닌 다른 프레임워크의 핸들러를 Spring MVC에 통합하기 위해서는

 HandlerAdapter를 사용할 수 있습니다.

 

 

 

 

 ㅇ @RequestMapping

 

1) value 

: URL값으로 매핑 조건을 부여합니다. 보통 호스트주소와 포트번호를 제외한 url주소를 넣어줍니다.

  이는 다중 요청이 가능하여 @RequestMapping ( {"/hello". "/hello-rule", "/hello/**" } ) 형식으로 사용할 수 있습니다.

 

2) method

: HTTP request 메소드 값을 매핑조건으로 부여하는데 GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE 메소드가 존재합니다.

 

 

 

 

ㅇ PostMapping / GetMapping

: Post/Get method 로 RequestMapping을 합니다.

 

1) @PostMapping : HTTP Post Method에 해당하는 단축 표현으로 서버에 리소스를 등록(저장)할 때 사용합니다.

2) @GetMapping : HTTP Get Method에 해당하는 단축 표현으로 서버의 리소스를 조회할 때 사용합니다.

3) @DeleteMapping : 서버의 리소스를 삭제

4) @PutMapping : 서버의 리소스를 모두 수정

5) @PatchMapping : 서버의 리소스를 일부 수정

 

 

 

 

ㅇ 현재 저의 소스코드로 설명

@GetMapping("/new")
public String New() {
        return "/Login/회원가입";
}

@PostMapping("/new")
public String create(MemberForm form) {
        Member member = new Member();
        member.setName(form.getName());
        member.setPhoneNumber(form.getPhoneNumber());

        memberService.join(member);

        return "redirect:/";
}
<form action="/new" method="post">

 - 위의 소스 코드에 대한 설명 및 순서도

 

 

 

 

 

 

 

 

* 출처

https://itvillage.tistory.com/33

https://velog.io/@dyunge_100/Spring-%EC%9A%94%EC%B2%AD-%EB%B0%A9%EC%8B%9DRequestMapping-GetMapping-PostMapping

 

 

+ Recent posts