05/05 면접 준비(SpringBoot), HTTP 요청
@GetMapping
- HTTP GET 요청을 처리
- 주로 데이터를 조회할 때 사용
- 요청 데이터는 URL의 쿼리 파라미터로 전달되며, URL에 노출
- 여러 번 요청해도 결과가 바뀌지 않는 idempotent한 작업에 적합
- @GetMapping은 데이터를 URL의 쿼리스트링에 포함시켜 전송하므로, 요청 데이터(예: 아이디, 비밀번호 등)가 주소창이나 서버 로그, 브라우저 기록 등에 노출되어 보안에 취약
@PostMapping
- HTTP POST 요청을 처리
- 주로 데이터를 생성하거나 서버로 전송할 때 사용
- 요청 데이터는 HTTP Body에 담겨 전송되어, URL에 노출되지 않음
- 여러 번 요청하면 결과가 달라질 수 있는 non-idempotent 작업에 적합
- @PostMapping은 데이터를 HTTP 요청의 Body에 담아 전송하므로, URL에 노출되지 않아 GET 방식보다 상대적으로 보안이 더 강함
- POST 방식도 네트워크 구간에서 암호화(HTTPS)가 적용되지 않으면 데이터가 노출될 수 있으므로, 민감한 정보는 반드시 HTTPS와 함께 사용해야 안전
@PutMapping
- 전체 리소스의 수정(덮어쓰기)에 주로 사용
- 요청에 포함되지 않은 필드는 null이나 기본값으로 바뀔 수 있음.\
- 기존 리소스의 모든 내용을 새 데이터로 완전히 대체
@PatchMapping
- 리소스의 일부만 부분적으로 수정할 때 사용
- 변경하고 싶은 필드만 요청에 포함시키면 해당 부분만 수정되고, 나머지 필드는 그대로 유지