HTTP메서드 종류
HTTP는 다양한 메서드(method)를 정의하고 있으며, 이 중 일부는 다음과 같.
주요 메서드
GET : 리소스(웹 페이지, 이미지, 동영상 등)를 조회,요청
POST : 요청데이터 처리, 주로 등록에 사용
PUT : 리소스를 대체,해당 없으면 생성
PATCH : 리소스 부분변경
DELETE : 리소스 삭제
기타 메서드
HEAD : GET 메서드와 비슷하지만, 리소스의 메타데이터(크기, 타입 등)만을 요청
OPTIONS : 서버에서 지원하는 메서드 종류를 요청
TRACE : 클라이언트가 서버로 전송한 요청 메시지 반환
CONNECT : 서버와의 네트워크 연결 설정
💡HEAD, OPTIONS, TRACE, CONNECT 메서드는 특정한 상황에서 사용된다.
GET
위 예시는 HTTP GET 요청 메시지의 예시이다. 이 요청 메시지는 다음과 같은 내용을 담고 있다.
/search?q=hello&hl=ko: GET 요청할 리소스의 경로을 말하며, 이 경로는 URI로, 서버에서 요청된 리소스를 식별하는 데 사용된다.
여기서는 Google 검색 서비스의 "search" 경로에 "q=hello&hl=ko"라는 쿼리 스트링(query string)이 포함되어 있다. 쿼리 스트링은 클라이언트가 서버로 보내는 매개변수이며. 여기서는 "q"라는 매개변수에 "hello"라는 값이 전달되었고, "hl"이라는 매개변수에 "ko"라는 값이 전달되었다.
💡쿼리 스트링 : 웹 요청에서 사용되는 URL의 일부분으로, 클라이언트가 서버에게 전달하는 매개변수를 포함하는 문자열이며, 일반적으로 웹 페이지의 검색 기능이나 필터링 기능 등에서 사용됨
POST
HTTP POST 메서드는 클라이언트가 서버에게 데이터를 전송하여 새로운 리소스를 생성하거나 기존 리소스를 업데이트하는 등의 작업을 요청하며, POST 요청은 요청 메시지 본문(body)에 데이터를 담아 전송한다. 서버는 요청 본문을 처리하여 요청에 따른 적절한 동작을 수행된다.
예를 들어, 게시글을 작성하거나 파일을 업로드하는 경우에는 POST 요청을 사용하여, 서버는 이 데이터를 처리하여 새로운 게시글을 작성하거나 파일을 업로드하는 등의 작업을 수행한다.
위 예시는 HTTP POST 요청 메시지의 예시이다. 이 요청 메시지는 다음과 같은 내용을 담고 있다.
POST /members HTTP/1.1 요청은 새로운 회원 정보를 등록하기 위한 서버에 요청하고. 요청 메시지의 Content-Type 헤본문에는 새로운 회원 정보를 나타내는 JSON 데이터 객체가 포함되어 있다.
서버는 이 요청을 받아 새로운 회원 정보를 등록한 후, 201 Created 상태 코드를 반환한다. 응답 본문에는 등록된 회원 정보를 나타내는 JSON 객체가 포함될 수 있다. 이 경우, 응답 본문에는 요청 본문과 동일한 회원 정보가 포함될 수 있다.
또한, 응답 메시지에는 Location 헤더가 포함되는데. 이 헤더는 새로 생성된 리소스의 URI의 경로를 나타낸다.
위 예제에서는 Location: /members/100이라는 리소스 경로가 포함되어 있다. 이는 새로 생성된 회원 정보의 URI가 /members/100임을 나타낸다.
POST의 요청 데이터를 어떻게 처리한다는 뜻일까?
POST 요청은 대상 리소스가 리소스의 고유한 의미 체계에 따라 요청에 포함된 표현을 처리하도록 요청한다.
POST 메서드는 다양한 기능에 사용될 수 있다. 예를 들어 HTML FORM에 입력된 필드와 같은 데이터 블록을 서버에 제공하여 회원 가입, 주문 등에서 사용될 수 있고. 게시판, 뉴스 그룹, 메일링 리스트, 블로그 또는 유사한 기사 그룹에 메시지 게시와 같은 기능(글쓰기, 댓글쓰기)에도 사용된다.
또한 서버가 아직 식별하지 않은 새 리소스를 생성하거나(예: 신규주문), 기존 자원에 데이터를 추가하기(내용 추가)위해 사용될 수도 있다.
💡각 리소스의 URI에 POST 요청이 전송될 때마다, 서버는 요청 데이터를 어떻게 처리할지를 정해야 한. 이는 리소스마다 따로 정해진 것이 없으므로, 서버 개발자가 요청 데이터를 어떻게 처리할지를 결정해야한다.
⭐️정리
첫째, POST 메서드는 RESTful API에서 새로운 리소스를 생성하거나 요청 데이터를 처리하기 위해 사용된다.
둘째, POST는 데이터를 단순히 생성하거나 변경하는 것을 넘어서 프로세스를 처리해야 하는 경우에도 사용된다.
예를 들어, 주문에서 결제완료, 배달시작, 배달완료 등의 상태가 변경될 때, POST를 사용하여 프로세스를 처리할 수 있다.
셋째, 다른 메서드로 처리하기 애매한 경우에도 POST를 사용할 수 있. 예를 들어, 조회 데이터를 JSON 형식으로 전달해야 하지만 GET 메서드를 사용하기 어려운 경우에 POST를 사용할 수 있다.
💡POST 메서드는 결과적으로 새로운 리소스가 생성되지 않을 수도 있으며, 이 경우, 컨트롤 URI를 사용하여 다른 메서드를 사용하여 처리할 수 있다.
출처 : 인프런 - 모든 개발자를 위한 HTTP 웹 기본지식 by 우아한형제 김영한이사님
'WEB HTTP > HTTP 기본' 카테고리의 다른 글
HTTP 메서드속성 - 안전, 멱등, 캐시가능 (0) | 2023.03.19 |
---|---|
HTTP 메서드 - PUT, PATCH, DELETE (0) | 2023.03.17 |
HTTP 메시지구조 (0) | 2023.03.17 |
HTTP 연결성과 비연결성(connectionless) (0) | 2023.03.17 |
HTTP 기본 (0) | 2023.03.16 |