[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등의 조건을 걸면 비멱등이됨)