HTTP 메서드에 대해 알기 위해 먼저 정의되는 것이 REST.
REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. (약속)
즉 REST란
HTTP URI를 통해 자원을 명시하고, HTTP 메서드를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
❓ URI & URL
URI : 특정 리소스를 식벽하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스이다.
URL : 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다.
❓ CRUD Operation
컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성) Read(읽기) Update(갱신) Delete(삭제)를 일컫는 개념이다. REST에서 CRUD 동작의 예시는 다음과 같다.
Create : 데이터 생성(POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT)
Delete : 데이터 삭제(DELETE)
REST API는 REST의 원리를 따르는 API를 의미한다. 몇가지 규칙이 존재한다.
http란 HyperText Transfer Protocol, 문서 간의 링크를 전송하는 프로토콜이다. HTML뿐만 아니라 텍스트나 이미지, 음성, 영성, JSON 등 거의 모든 형태의 데이터가 전송이 가능하다.
대표적으로 GET, POST, PUT, DELETE가 있으며 위에 나와있듯 CRUD에 이용할 수 있다.
GET : 서버로부터 데이터를 얻어온다.
POST : 서버에 데이터를 추가한다.
PUT : 서버의 데이터를 갱신한다. 기존 리소스를 삭제하고 덮어씌운다.
DELETE : 서버의 데이터를 삭제한다.
HEAD : 서버 리소스의 헤더(메타 데이터)를 얻어온다.
OPTIONS : 리소스가 지원하고 있는 메서드를 얻어온다.
PATCH : 리소스의 일부분을 수정한다.
CONNECT : 프록시 동적의 터널 접속을 변경한다.
동일한 요청을 여러 번 보내도 한 번 보내는 것과 같은 것 외부 요인으로 중간에 리소스가 변경되는 것을 고려하지 않고 해당 요청을 기준으로 고려한다. 올바르게 구현한 GET, PUT, DELETE 메소드는 멱등성을 지녀야 한다.