컨트롤러를 구현하면서, @RequestMapping의 매개변수 method가 무슨 역할을 하는 지 궁금했다.

 

 먼저 @RequestMapping이 무엇을 위해 사용하는 지 검색해본 결과, DefaultAnnotationHandlerMapping에서 컨트롤러를 선택할 때 대표적으로 사용하는 애노테이션임을 알 수 있었다. @RequestMapping은 메서드 단위까지 세분화해 컨트롤러에 매핑할 수 있으며, url뿐 아니라 매개변수, 헤더 등 많은 곳에 사용할 수 있다는 것을 알게 되었다.

 출처 joont92.github.io/spring/@RequestMapping/


value를 통해 url의 패턴을 지정할 수 있으며, method를 통해 똑같은 url을 받아도, 다른 메소드에 매핑해줄 수 있다는 것을 알게 되었다.

 

 그 중 GET, POST, PUT, DELETE, OPTIONS, TRACE 총 7가지의 http의 메소드가 있다는 것을 알게 되었는데, GET과 POST 메소드를 공부했다.

 

 GET과 POST 메소드 둘 다 서버에 요청을 하는 메소드인 것을 알게 되었다. 다만 차이점이 있는데 POST 방식을 사용할 경우, 패킷 안에 숨겨져 url에 전송하는 값을 노출하지 않지만(HTTP패킷의 바디에 포함), GET 방식은 전송하는 값을 url에 노출하는 것(HTTP패킷의 헤더에 포함) 또한 알게 되었다.

 또한 GET 방식은 컴퓨터 구조에서 배웠던 캐시 방식을 사용하는 데, GET 메소드의 요청은 다시 요청을 할 때를 대비해 데이터를 저장시켜 놓아, POST 방식보다 더 빠르게 응답할 수 있다는 점을 알게 되었다. 

 

+ Recent posts