ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 메서드
    개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 1. 27. 14:21
    728x90
    반응형
    • HTTP 메서드
    • 메서드 종류
    • HTTP 메서드의 속성

     

     

     

    HTTP 메서드

     

     클라이언트가 서버로 요청을 할 때, 어떠한 목적을 갖는 행위인지 HTTP 메서드에 명시한다. 일종의 약속인 것을 기억하자. 클라이언트가 처리를 원하는 방법을 메서드에 명시할 테니 서버에서는 그 메서드에 명시한 대로 응답을 보내달라는 일종의 약속이다. 이러한 약속으로 클라이언트와 서버 간 데이터 통신을 할 수 있게 되는 것이다.

     

     또한 중요한 사실 하나! 

    같은 URI라도 HTTP 메서드에 따른 다른 처리를 할 수 있다는 것이다. 예를 들어

     

    /members/{member_id}

     

     라는 URI를 클라이언트가 요청시 요청 메시지의 GET, POST, PUT, PATCH, DELETE의 메서드를 사용할 때 각 메서드에 맞는 처리를 한 URI에서 처리할 수 있게 된다.

    @GetMapping("/members/{member_id}")

    @PostMapping("/members/{member_id}")

    @PutMapping("/members/{member_id}")

    ....

     

     


     

     

    HTTP 메서드의 종류

     

    • GET : 리소스 조회, 서버에게 리소스를 달라는 요청 (조회)
    • POST : 요청 데이터 처리, 주로 등록에 사용 (삽입)
    • PUT : 리소스를 대체(변경이아닌 대체라는 것에 명심하자), 해당 리소스가 없으면 생성 (수정)
    • PATCH : 리소스 부분 변경 (수정)
    • DELETE : 리소스 삭제 (삭제)
    • 그 외 메서드 : HEAD, OPTIONS, CONNECT, TRACE

     

    GET

     

    • 리소스 조회
    • 리소스를 조회하기 위해 필요한 데이터는 query(쿼리 스트링)를 통하여 전달

     

    위 예시는 리소스를 JSON으로 나타내었다.


     

     

    POST

     

    • 메시지 바디를 통해 서버로 요청 데이터 전달
    • 서버는 클라이언트로부터 받은 요청 데이터를 처리
    • 신규 리소스 등록, 프로세스 처리 등에 사용
    • 단순히 데이터 생성, 변경을 넘어서 프로세스 처리해야 하는 경우 사용

     


     

     

    PUT

     

    • 리소스를 변경이 아닌 대체
    • 리소스가 있으면 대체, 없으면 생성
    • 쉽게 이야기해서 해당 리소스를 덮어씌운다고 생각하면 된다.
    • 클라이언트가 리소스를 알고 있어야 한다.(어떤 리소스를 대체할지 클라이언트가 알고 있어야 한다.)

     

    리소스가 있는 경우
    리소스가 없는 경우


     

     

    PATCH

     

    • 리소스를 변경
    • PUT은 대체, PATCH는 변경인 점을 잘 구분하자

     

    PATCH의 리소스 변경 과정
    PUT의 리소스 대체 과정


     

     

    DELETE

     

    • 해당 리소스를 제거

     


     

     

    HTTP 메서드의 속성

     

     

    • 안전(Safe Methods)
    • 멱등(Idempotent Methods)
    • 캐시가능(Cacheable Methods)

     

     

    안전(Safe Methods)

     

    • 여러번 호출해도 리소스의 변경이 일어나지 않는 것을 안전하다고 한다.
    • GET, HEAD, OPTIONS, TRACE

     

     

    멱등(Idempotent)

     

    • 한번 이상의 호출에도 항상 호출된 결과는 같아야 한다.
    • 한번 호출하던, 100번 호출하던 그 결과는 같아야 한다.
    • 자동 복구 매커니즘에 쓰인다.(서버가 TIMEOUT 등의 원인으로 정상 응답을 못주었을 떄 다시 요청)
    • 멱등은 외부 요인으로 중간에 리소스가 변경되는 것은 고려하지 않는다.
      EX) GET 요청 중간에 PUT 요청으로 리소스가 변경되어 GET 요청의 결과가 달라져도 멱등이라고 한다.
    • GET : 항상 같은 결과가 조회된다.
      PUT : 결과를 대체하므로 항상 같은 결과가 나온다.
      DELETE :  결과를 삭제하면 그 이후에 같은 요청이 와도 같은 결과가 나온다
    • POST는 멱등이 아니다! 

     

     

    캐시가능(Cacheable)

     

    • 응답 결과 리소스를 캐시로 사용해도 되는가는 판별
    • GET, HEAD, POST, PATCH 모두 캐시가능 하지만 보통 GET만 캐시로 사용한다.

     

     

     

    참고

     

    모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 학습 페이지 (inflearn.com)

     

    모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 학습 페이지

    지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

    www.inflearn.com

     

    728x90
    반응형

    댓글

Designed by Tistory.