서론
저번 장에서는 HTTP가 무엇인지와 어떤 특징을 뜨는지에 대해서 알아갔다.
이번 장에서는 HTTP의 METHOD에 대해서 써보려고 한다.
아 참고로 핑핑이를 사용해서 쓴 툴은 FIGMA라는 사이트로 아키텍처나 디자인을 할 수 있는 툴이다.
HTTP METHOD?
HTTP METHOD는 총 8가지로 나뉜다.
GET : 데이터를 받는다.
POST : 요청한 데이터를 추가 및 작성
PUT : 데이터를 갱신하거나 데이터가 없을 때 작성
DELETE : 데이터를 삭제
PATCH : 데이터의 일부분을 수정
그 밖에 HEAD, OPTIONS, TRACE 등등이 있다.
이 중에서 가장 크게 대표적으로 쓰는 GET, POST, PUT, DELETE 에 대해서 알아보겠다.
HTTP 매써드 - GET
GET은 서버에 전달하고자 하는 데이터를 쿼리문으로 전달한다.
그렇게 요청을 하면 데이터를 읽거나 검색을 한다.
만약 요청이 성공적이라면 응답을 하는 코드를 다시 리턴해준다.
여기서 에러가 발생하게 되면 우리가 한 번은 봤을 404 NOT FOUND 에러가 뜨게 된다.
즉 서버에서 데이터베이스를 조회하여 그 응답된 코드를 만들어서 다시 클라이언트에게 보내는 역할이다.
HTTP 매서드 - POST
POST는 새로운 데이터를 생성하고자 할 때 주로 사용한다.
이 데이터를 서버에서는 내부적으로 어떻게 쓸지 정해진 규약에 맞춰서 신규 등록을 생성하고
이런 등록되어 온 데이터를 다시 응답된 코드를 만들어서 클라이언트에게 보낸다.
POST의 과정
1. 등록
클라이언트가 서버에 없는 데이터를 넘기면서 서버는 새 데이터를 생성한다.
2. 등록된 데이터 처리
태어날 때 내가 어떻게 생겼고 이름이 무엇인지 모르는 것처럼 태어나고 이름을 알게 되고 한글을 알게 되는 방식처럼 프로세스 내부에서 변화가 일어난다.
HTTP 매서드 - PUT
PUT은 데이터를 수정하거나 생성하기 위해 사용한다.
서버로 데이터를 보내서 클라이언트가 보내는 데이터로 수정을 시키는 역할을 한다.
또한 만약 보낸 데이터에 대해서 위의 예와 같이 100번째 멤버 자체가 존재하지 않는다면
100번째 맴버라고 지정해 주고 클라이언트가 준 데이터를 받아 생성한다.
이때 데이터를 수정을 할 때 " 나는 키를 넣기 싫어! " 하면
PUT을 사용할 때 키를 제외한 데이터를 보내게 되면 키의 데이터는 사라진 값으로 수정이 된다.
즉, 수정을 시킨다는 매커니즘은 클라이언트가 보낸 메시지로 대체한다고 보면 되는 것이기 때문에
원하는 데이터 값을 다 작성해주어야 한다.
HTTP 매서드 - DELETE
DELETE는 데이터를 삭제할 때 사용한다.
클라이언트가 100번째 멤버 삭제를 요청하게 되면 서버에서 데이터 베이스에 지닌
100번째의 맴버의 데이터를 삭제시킨다.
이렇게 간단하게 4가지의 매서드의 특징을 알아보았다.
그럼 이제 더 나아가 차이점을 한 번 살펴보고 이러한 특징을 비교해 보자.
GET vs POST
크게 두 가지 측면에서 비교할 수 있다.
일단 GET은 POST와 다르게 멱등성( 연산을 여러 번 해도 결과는 바뀌지 않는 것 )을 가지고 있기 때문에
이런 장점을 통해 요청이 여러 번 들어와도 조금 더 빠른 장점을 지닌다.
반대로 POST는 GET과 다르게 URL에 데이터의 정보를 가지지 않아 보안 측면에서는 좋다.
POST vs PUT
POST는 새로운 데이터를 계속 만들기 때문에 지속적으로 데이터를 생성하고
PUT은 사용자가 데이터를 지정해서 수정하는 것이기 때문에 같은 요청을 해도 데이터는 지속적으로 생성하지 않는다.
HTTP와 METHOD 2장에서 METHOD에 대해서 설명을 했다.
웹 지식을 공부하면서 약간 재미를 느끼는 변태가 된 거 같긴 하다.
'백엔드' 카테고리의 다른 글
FastAPI ( with gRPC를 곁들인.. ) (0) | 2025.05.29 |
---|---|
📚중고 도서 예약 시스템 (1) | 2025.05.08 |
Trading View 코인 자동 매매 시스템 ( 1 ) / 구상 단계 (1) | 2025.04.26 |
TDD 방법론 이게 뭘까 ? (0) | 2025.01.27 |
[Web] HTTP 와 Method #1 (1) | 2024.10.16 |