일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바
- 자바스크립트
- stack
- 배열
- 정렬
- 인프런
- 그리디알고리즘
- 자료구조
- spring
- 콜백지옥
- mybatis
- 코딩테스트
- NestJS
- 코딩
- array
- 코테
- javascript
- 프로그래머스
- 백준
- 삼성
- AtoZ0403
- java
- 카카오
- 스텍
- js
- 삼성소프트웨어아카데미
- SWEA
- 중간 평균값 구하기
- 알고리즘
- 코테준비
- Today
- Total
개발에 AtoZ까지
[HTTP통신] HTTP 메소드 및 특징 본문
◆목표
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가 있기 때문에 캐싱하기 쉽다.
'백엔드 > REST API' 카테고리의 다른 글
[SpringBoot] HTTP Status Code 제어 중요성 및 방법 (2) | 2021.07.17 |
---|---|
[네트워크][통신방식] Socket 통신과 Http 통신의 비교 (0) | 2021.03.03 |
[개념] REST, REST API, RESTful 정의 및 특징 (0) | 2021.02.14 |