[Week8] HTTP 메소드
2024년 12월 7일
HTTP 메소드란
- 클라이언트가 서버에게 어떤 작업을 요청하는지를 표현
| 메소드 | 설명 |
| GET | 데이터 조회 요청. 서버에서 데이터를 가져옴 (조회 전용) |
| POST | 새로운 데이터 생성 요청 (ex. 회원가입, 게시물 작성) |
| PUT | 전체 데이터를 수정 (기존 리소스를 완전히 덮어씀) |
| PATCH | 일부 데이터를 수정 |
| DELETE | 데이터 삭제 요청 |
| OPTIONS | CORS 사전 요청 등 서버에서 허용 메소드 확인용 |
| HEAD | GET과 유사하지만 응답 본문 없이 헤더만 받음 |
멱등성
- 같은 요청을 여러 번 보내더라도 결과가 같음을 의미
| 요청 | 실행 결과 | 멱등성 |
| GET /user/1 | 사용자 1번 조회 | ✅ |
| DELETE /user/1 | 사용자 1번 삭제 | ✅ |
| POST /user | 사용자 생성 (매번 다른 id로 생성됨) | ❌ |
| PUT /user/1 | 사용자 1번 정보를 같은 값으로 전체 수정 | ✅ |
| PATCH /user/1 | 사용자 1번 정보 일부 변경 | ❌ |
- PUT과 PATCH의 멱등성 차이
- PUT의 경우 요청을 몇번 보내든 결과는 항상 보내는 값으로 전체를 덮어씌우기 때문에 멱등
- PATCH의 경우 “수정 로그를 누적 저장”하거나 “요청 횟수에 따라 다른 처리”를 하게 되면 매번 요청에 의해 내부 상태가 변할 수 있기 때문에 비멱등의 가능성이 있음 ( 서버에서 PATCH를 보낼때마다 +1등의 조건을 걸면 비멱등이됨)
