개발에 AtoZ까지

[HTTP통신] HTTP 메소드 및 특징 본문

백엔드/REST API

[HTTP통신] HTTP 메소드 및 특징

AtoZ 개발자 2021. 6. 6. 16:13
반응형

◆목표

HTTP 통신이란?
HTTP 메소드 종류 및 특징
멱등성이란?
HTTP 메소드별 속성


1. HTTP 통신이란?

HTTP 통신은 Server와 Client간의 통신하는 방법 중 하나로 Client의 요청이 있을 때만 Server가 응답하여 처리하고 이후에는 연결을 끊는 방식이다.

2. HTTP 메소드 종류 및 특징

메소드 명 메소드 용도 정의

메소드 특징

GET 데이터 조회 서버에 전달하고 싶은 데이터를 query(parameter, query string)을 통해 전달한다 Query를 BODY에 담아서 조회가능하나 지원하지 않는 곳도 있기 때문에 권장하지 않는다.
POST 다양한 요청 처리 BODY에 리소스 데이터를 전달 GET 방식 사용시 전달해야할 데이터가 많다면 POST를 사용하여 BODY에 조회할 데이터를 전달할 수 있지만 POST로 조회시 캐싱하기에 어려운 문제가 있기 때문에 권장하지 않는다.(기술적으로 캐싱은 가능하다.)
PUT 데이터 추가 또는 덮어쓰기 요청한 데이터가 없다면 추가하고 있으면 덮어쓰기 한다. POST와 PUT은 다르다. POST를 계속 요청하면 데이터가 계속 생성되지만 PUT은 여러번 요청하더라도 결과는 같다.(멱등성)
PATCH 데이터 수정 전달한 데이터로 수정한다. 해당 기능을 지원하지 않는 경우도 있기 때문에 권장하는 방식이 아니다. 수정시에는 POST를 사용한다.
DELETE 데이터 삭제 특정 리소스의 삭제를 요청하는 데 사용한다. -

 

🔶 상위에 있는 5가지 메소드 외에 HTTP 메소드는 더 있으나 실무에서 잘 사용하지 않기 때문에 제외하였습니다.


🔶 PUT과 POST 사용 기준
-> PUT은 UPDATE개념으로 생각하면 이해하기 쉽다.  POST는 일반적인 HTTP 메소드인 GET, PUT, PATCH 등의 메소드로 처리가 힘든 요청을 보낼 때 사용한다고 이해하면 될 것 같다.

 

🔶 PUT과 PATCH 차이점

-> 두 메소드다 UPDATE 개념이지만 범위가 다르다. 예를 들어보면 {이름,나이} 정보를 가지고 있는 서버에게 {나이} 만 있는 데이터를 PUT과 PATCH 메소드 각각으로 전송한다면 결과는 다르다. PUT은 {나이}, PATCH는 {이름, 나이}의 데이터를 가지고 있다. 정리하자면 PUT은 덮어쓰기 개념이고 PATCH는 부분수정의 개념이다.

 

3. 멱등성이란?

멱등법칙(冪等法則) 또는 멱등성(冪等性, 영어: idempotent)은 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
-위키백과사전-

정리하자면 특정 HTTP 메서드를 여러 번 요청을 했을 경우, 매번 요청 결과가 같다면 해당 메소드를 멱등성 메소드라고 한다.

4. HTTP 메소드별 속성

메소드 명 안전성 멱등성 캐시가능
GET ⭕️ ⭕️ ⭕️
POST
PUT ⭕️
DELETE ⭕️

 

🔶안전성이란?
-> 호출해도 리소스를 변경하지 않는 특성, 서버에게 영향을 끼치는 여부로 생각하면 될거같다. 

 

🔶캐싱이란?

-> 용량이 큰 이미지를 서버로 부터 1회 받은 이후에 다음을 위해 브라우저에 저장하는 것을 말한다.

-> 대부분 GET 메소드에 대해서 캐싱을 많이 사용하는데 이유는 캐싱을 하려면 키값을 잡아야하는데 GET 메소드 특성상 변하지 않는 URI가 있기 때문에 캐싱하기 쉽다.

반응형
Comments