HTTP(HyperText Transfer Protocol)는 OSI 7계층 중 응용 계층(Application Layer) 프로토콜입니다. 그 본질은 '요청(Request)과 응답(Response)' 모델을 기반으로 동작하는, 무상태(Stateless) 프로토콜 입니다.
클라이언트가 특정 자원(Resource)에 대한 요청을 보내면, 서버는 그 요청에 맞는 응답을 보내고 연결을 끊습니다. 각 요청은 이전 요청과 독립적이기 때문에 '무상태'라고 부릅니다.
편지를 보낼 때 "서류 제출", "안부 인사"처럼 목적이 있듯, HTTP 요청에도 여러 목적이 있습니다. 이걸 HTTP Method라고 부릅니다.
HTTP Method는 클라이언트가 웹 서버에 요청하는 동작의 종류(Action Type)를 명시하는 '동사(Verb)'입니다. 이 Method들은 특정 자원(Resource), 즉 URI(Uniform Resource Identifier)가 가리키는 대상에 대해 수행되길 원하는 작업을 정의합니다. 이는 REST 아키텍처에서 CRUD(Create, Read, Update, Delete) 연산과 직접적으로 매핑됩니다.
GET: 데이터를 조회(Read)해달라는 요청입니다. "채팅방 목록 좀 보여줘" 처럼 서버의 데이터를 변경하지 않고 가져오기만 할 때 씁니다.POST: 새로운 데이터를 생성(Create)해달라는 요청입니다. "이 내용으로 새로운 메시지를 채팅방에 추가해줘" 처럼 서버에 없던 새로운 자원을 만들 때 사용합니다.PUT: 자원 전체를 대체(replace)합니다. 보내지 않은 필드는 null이나 기본값으로 초기화될 수 있습니다.PATCH: 데이터의 일부만 수정(modify)합니다. 보내지 않은 필드는 그대로 유지됩니다.DELETE: 데이터를 삭제(Delete)해달라는 요청입니다. 말 그대로 "이 채팅 메시지를 삭제해줘" 라는 의미죠.