[ Network] HTTP method

nopecho·2022년 1월 17일
1

HTTP 메서드

주로 사용하는 HTTP 메서드 종류는 다음과 같다.

  • GET : 리소스 조회
  • POST : 요청 데이터 처리, 주로 등록에 사용
  • PUT : 리소스를 대체, 리소스가 없으면 생성
  • PATCH : 리소스 부분 변경
  • DELETE : 리소스 삭제

GET

GET 메서드는 리소스를 조회할 때 사용한다.
서버에 전달하고 싶은 데이터는 query를 통해서 전달할 수 있다.

보통 우리가 주소창에 URI를 입력하고 엔터를 치면 GET방식으로 서버에 요청을 보낸다.

  • HTTP서버 상의 리소스 조회
  • 서버에 전달하고 싶은 데이터는 query파라미터를 통해서 서버에 전달
  • GET메서드도 바디 부분에 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아서 잘 사용되지 않는다.

POST

POST 메서드는 요청 메시지 바디부분에 데이터를 담아서 서버에 요청을 보내면 서버는 데이터를 처리한다.
보통 POST를 신규 리소스를 등록하는 역할을 한다고 생각할 수 있는데 사실 데이터를 처리 하는 역할을 한다.

  • 요청 데이터 처리
  • 메시지 바디를 통해 서버로 요청 데이터를 전달한다.(GET 메서드와 다른점)
  • 서버는 POST메서드 요청 데이터를 처리 한다.
  • 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리등에 사용 된다.

PUT

PUT은 리소스를 완전히대체한다. 대체한다는 말은 요청 리소스가 있으면 덮어 씌우고 없으면 생성한다. 만약 기존에 리소스가 존재하는 상태로 PUT으로 데이터 요청을 보내면 기존에 데이터는 완전히 날라가고 요청받은 새로운 데이터로 대체 된다.

얼핏보면 POST와 비슷하지만 가장 큰 차이는 URI에 리소스 위치를 지정해서 요청을 보낸다. 그리고 데이터를 수정한다는 개념과는 조금 다르다. 부분적으로 수정 되는게 아니라 완전 대체 되기 때문

  • 리소스를 대체한다.
  • 클라이언트에서 리소스를 식별한다.

PATCH

PATCH는 위의 PUT메서드와 다르게 부분 변경이 가능하다.

서버 환경에 따라 PATCH가 인식이 안될 수 도있는데 그럴땐 만능 POST메서드를 사용하면된다.

DELETE

말그래도 요청 리소스 자체를 삭제하는 메서드이다.

HTTP 메서드의 속성

안전 (Safe)

HTTP에서 안전이라는 속성은 요청 리소스가 변하지 않는속성이다. 즉
대표적인 안전한 속성을 가지고있는 메서드는 GET메서드 이다.

GET메서드는 말그대로 리소스를 조회만 하는 메서드이기 떄문에 리소스가 변경되거나 구조가 변경되지 않는다. 이러한 속성을 안전속성이다.

멱등 (Idempotent)

멱등.. 말이 참 어렵다. 하지만 멱등은 이렇게 생각하면 된다.
몇번이고 호출 하든 결과가 똑같은가. 로 정의할 수 있겠다.

  • 멱등 메서드

    • GET : 한 번 조회하든, 열 번 조회하든 같은 결과가 조회 된다.
    • PUT : 결과를 완전 대체 한다. 같은 요청을 여러번 해도 최종 결과는 같다.
    • DELETE : 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다.

POST메서드 같은 경우 멱등 메서드가 아니다. POST메서드를 두 번 호출하면 똑같은 데이터 처리를 한번 더 처리 하기 때문에 결과가 달라질 수 있다.

캐시가능 (Cacheable)

캐시 가능 속성은 응답 결과 리소스를 캐싱해서 사용해도 되는가? 이다.
응답 결과를 로컬 캐시 저장소에 저장해두고 응답을 받을때 까지 기다리는게 아니라 캐시된 리소스를 바로바로 사용할 수 있도록 하는 것이낟.

  • 캐시 가능 메서드

    • GET, HEAD, POST, PATCH (POST, PATCH는 잘 사용 안됨)

0개의 댓글