GET, POST, PUT, PATCH, DELETE에 대해 알아보자
줄여서 겟폿풋펫딜
1. GET 메소드
GET은 리소스를 조회하는 데 사용되는 가장 기본적인 HTTP 메소드다.
웹 브라우저에서 주소창에 URL을 입력하면 기본적으로 GET 요청이 발생한다.
특징:
- 서버의 데이터를 변경하지 않는 안전한 메소드
- 캐시 가능
- URL에 데이터가 노출되므로 보안에 주의
- 데이터 크기에 제한이 있음
예시:
GET /api/users/123 HTTP/1.1
Host: example.com
2. POST 메소드
POST는 새로운 리소스를 생성할 때 사용됩니다. 서버에 데이터를 제출하는 가장 일반적인 방법입니다.
특징:
- 서버의 상태를 변경
- 요청 본문에 데이터를 포함
- 캐시할 수 없음
- 데이터 크기 제한 없음
예시:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "홍길동",
"email": "hong@example.com"
}
3. PUT 메소드
PUT은 리소스를 완전히 대체할 때 사용됩니다. 해당 리소스가 없으면 새로 생성하고, 있으면 전체를 교체합니다.
특징:
- 멱등성(같은 요청을 여러 번 보내도 결과가 동일)
- 전체 리소스를 교체
- 리소스의 정확한 위치(URI)를 알고 있어야 함
예시:
PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "홍길동",
"email": "hong@example.com",
"age": 30
}
4. PATCH 메소드
PATCH는 리소스의 일부분만 수정할 때 사용됩니다. PUT과 달리 전체가 아닌 일부만 변경할 수 있습니다.
특징:
- 부분 수정에 최적화
- 변경이 필요한 필드만 전송
- PUT보다 네트워크 효율성이 높음
예시:
PATCH /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"email": "newhong@example.com"
}
5. DELETE 메소드
DELETE는 특정 리소스를 삭제할 때 사용됩니다.
특징:
- 멱등성 보장
- 삭제 후 해당 리소스에 접근 불가
- 보안상 중요한 작업이므로 인증 필요
예시:
DELETE /api/users/123 HTTP/1.1
Host: example.com
실제 활용 사례
사용자 관리 API의 예시를 통해 각 메소드의 활용:
- GET /users - 전체 사용자 목록 조회
- GET /users/123 - 특정 사용자 정보 조회
- POST /users - 새로운 사용자 등록
- PUT /users/123 - 사용자 정보 전체 수정
- PATCH /users/123 - 사용자 정보 일부 수정
- DELETE /users/123 - 사용자 삭제
주의사항
1. 보안
- 중요한 데이터는 항상 HTTPS를 사용
- 적절한 인증/인가 구현 필요
- GET 요청에 민감한 데이터 포함하지 않기
2. 성능
- 적절한 캐싱 전략 수립
- 대용량 데이터 처리 시 페이징 구현
- 불필요한 요청 최소화
3. 에러 처리
- 적절한 HTTP 상태 코드 사용
- 명확한 에러 메시지 제공
- 예외 상황에 대한 처리 구현
'Today I learned' 카테고리의 다른 글
WIL (0) | 2025.01.24 |
---|---|
JWT, Session (0) | 2025.01.22 |
장고 블로그 꾸미기(코드 없음) (8) | 2025.01.20 |
WIL 디장고의 관례 (0) | 2025.01.17 |
Django - Cookie와 Session (0) | 2025.01.17 |