텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜
클라이언트와 서버 사이에 커뮤니케이션을 가능하게 하기위해 고안
사용자가 브라우저를 통해서 어떠한 서비스를 url을 통하거나 다른 것을 통해서 요청(request)하면 서버는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작
GET : 리소스 조회
-> 서버에 전달하고 싶은 데이터는 query(URL)를 통해 전달
POST : 요청 데이터 처리, 주로 데이터 등록에 사용
-> 서버에 전달하고 싶은 데이터는 HTTP Body에 담아 전달
PUT : 리소스 갱신 (POST와 유사)
-> 리소스가 있으면 대체하고 없으면 생성(덮어씀)
DELETE : 리소스 삭제
PATCH : 리소스 일부만 변경
HEAD : 메시지 헤더 정보 받기 위함(GET과 동일하지만 메시지 부분을 제외하고 상태 줄과 헤더만 반환)
OPTIONS : 서버 측 제공 메소드에 대한 질의를 하기 위함
-> 대상 리소스에 대한 통신 기능 옵션 설명(주로 CORS에서 사용)
CONNECT : 클라이언트와 서버 사이의 중간 경유 위함(Proxy를 통해 SSL 통신을 할 때 사용)
-> 대상 자원으로 식별되는 서버에 대한 터널 설정
TRACE : Request 리소스가 수신되는 경로를 보기 위함
-> 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트 수행