HTTP 메소드

Sin·2024년 7월 10일

HTTP 메소드 종류

  • GET : 리소스 조회 (조회 프로세스)
  • POST : 요청 데이터 처리 (등록 프로세스)
  • PUT : 리소스를 대체, 해당 리소스가 없으면 생성 (업데이트 프로세스)
  • PATCH : 리소스 부분 변경
  • DELETE : 리소스 삭제 (삭제 프로세스)
  • HEAD : GET 과 동일하지만 메세지 부분을 제외하고, 상태 줄과 헤더만 반환 (무의미한 세션체크 API 호출 에 사용하면 좋을 듯)
  • OPTIONS : 대상 리소스에 대한 통신 가능 옵션 (메서드)을 설명 (주로 CORS에서 사용)
  • CONNECT : 대상 리소스로 식별되는 서버에 대한 터널을 설정
  • TRACE : 대상 리소스에 대한 경로를 따라 메세지 루프백 테스트를 수행

HTTP 메소드 상세 설명

  • GET
COMMENT : 핵심내용은 바디 메세지를 사용할 수 있고 실무에서 사용하는 경우도 많지만 
바디 메세지는 사용하지 않기를 권장.

  • POST

COMMENT :  새 리소스 생성(등록) 시에 주로 사용하지만 
실제로 실무를 하다보면 이론대로 처리 하지 못하는 상황이 생긴다.

유연하게 해당 성격에 맞는 HTTP 메소드를 사용해야 하지만 POST를 활용하는 경우가
가장 많이 발생하는 부분을 인지.

  • PUT
COMMENT : 실무에서는 업데이트 처리에 많이 사용. 
하지만 PUT은 모든 리소스를 완전히 대체하는 것으로 사용 하진 않았다.
(모든 리소스를 대체하기도 하고 부분만 대체하기도 하고 PUT + PATCH = PUT 으로 사용)
부분 리소스 변경은 PATCH 를 통해 처리 해야 하는 부분에 대해 추가 적으로 
알아보아야 할 것 같다.
  • PATCH
COMMENT : 특정 리소스만 변경할때는 앞으로 PATCH 를 사용하자
하지만 PATCH 를 지원하지 않는 서버환경에서는 POST 로 대체 가능하다.
  • DELETE

HTTP 메소드 상세 설명

  • 안전 : 호출해도 리소스가 변경하지 않으면 안전하다고 한다.

  • 멱등 : 여러번 호출해도 결과가 똑같으면 멱등하다고 한다. (외부 요인으로 변경된 부분은 고려하지 않음)
    GET : 같은 값으로 여러번 호출해도 조회 결과는 같다.
    PUT : 결과를 대체하지만. 에러가 발생하지 않고 추가적인 리소스가 발생하지 않음.
    DELETE : 결과를 삭제한다. 같은 요청을 여러번 해도 결과가 같음.
    POST : 멱등이 아니다. 여러번 호출하면 여러 리소스가 등록 될 가능성이 크다.

  • CACHE(캐시) ; 캐시가 가능한 메서드
    GET HEAD POST PATCH 가 가능하지만 실제로는 GET HEAD 만 사용.
    POST PATCH 는 본문 BODY 까지 고려해야 해서 구현이 쉽지 않음.


출처 김영한의 스프링 로드맵 - 모든 개발자를 위한 HTTP 웹 기본 지식

0개의 댓글