[네트워크] http 메소드 (get/post/put/patch/delete)

EMMA·2022년 1월 28일
1
post-custom-banner

[TIL 5] HTTP 메소드


회원 정보를 관리하는 API를 만들어야 한다고 가정해 보자.
그러면 회원 등록 URI, 회원 조회 URI, 회원 삭제 URI 등을 맵핑해야 할 것이다.
URI는 '리소스'를 식별하는 것이고 이 리소스에는 '회원'만 포함된다.
조회/등록/삭제/변경 등의 행위는 http 메소드를 통해 구현한다.
(리소스만 URI 맵핑한다고 모든 게 작동되는 것은 아니고, 간혹 컨트롤 URI도 별도로 맵핑해야 할 때가 있다)

*컨트롤 URI
: get, post 등 만으로는 부족한 추가 프로세스를 처리해야 할 경우, 추가적으로 사용되는 URI


http 메소드는 대표적으로 get, post, put, patch, delete, head 등이 있다.
  • get, 리소스 조회
    : message body는 일반적으로 넣지 않음 (이를 지원하는 서버가 많지 않음)
    : 전달하고 싶은 데이터는 query를 통해 전달
  • head, 리소스 조회 (메세지 body는 제외하고 status line, header만 조회)
  • post, 리소스 처리
    : 신규 리소스 등록 혹은 프로세스 처리에도 사용 가능
    (회원가입/주문, 게시판 글쓰기/댓글 달기, 신규 주문 생성, 결제-배달-배달 완료 등 상태 변경 프로세스 등)
    : 다른 메서드로 처리하기 어려우면 post를 사용하기도 함
  • put, 리소스 대체
    : 핵심은 "완전한" 대체 (기존 리소스가 있으면 100% 대체, 없으면 신규 생성)
    : 클라이언트는 처음부터 리소스 위치를 알고 URI를 지정함
  • patch, 리소스 부분 변경
    : 위에서 언급했듯 put은 리소스를 완전히 대체하기에, 부분적으로 변경하려면 patch를 사용해야 함
    : 만약에 서버가 put을 지원하지 않는다? post 를 사용하면 됨
  • delete, 리소스 삭제

http 메소드는 몇 가지 특징이 있다.
1) 안전: 호출해도 리소스는 변하지 않는다(get, head와 같은 메소드)
2) 멱등: 1번 호출해도, 100번 호출해도 결과는 똑같다 (put 과 같은 메소드가 대표적으로, 자동복구시스템에 이 '멱등'이란 개념이 활용된다. 하지만 post는 아님. 만약 신규 주문 생성을 2번 한다면?)
3) 캐시가능: cacheable, get/head 정도만 해당


*API란?
: application programming interface, 프로그래밍 언어가 제공하는 기능을 새로운 응용 프로그램에서 사용 및 제어할 수 있도록 해주는 장치(interface)
: 버튼을 클릭했을 때 경고창이 뜨게 하려면?
: 지도를 이용해 일기예보 정보를 보여주는 서비스를 만드려면?
: 내 웹 서비스 페이지에서 결제하기를 추가하려면?
-> 경고창, 구글맵, 결제 등이 API에 해당한다고 볼 수 있다.
-> 카카오 developer 사이트 등을 방문하면, 다양한 API 를 제공하는 것을 알 수 있다.




내용 출처: 모든 개발자를 위한 HTTP웹 기본 지식, 김영한

profile
예비 개발자의 기술 블로그 | explore, explore and explore
post-custom-banner

0개의 댓글