매일 한걸음씩 성장하기

[HTTP] method

2021. 6. 18. 17:46

HTTP에서 사용할 수 있는 method에는 여러 개가 있습니다.

method의 종류에 대해 알아보고 그중에서 헷갈리는 method를 비교해보겠습니다.

 

HTTP method

http에서 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)해줍니다.

이때 요청 method에 따라서 서버에서 진행하는 작업, 데이터 처리, 응답 메시지 형태 등이 달라집니다.

 

1. GET: 데이터 조회 요청 (CRUD의 R)

2. POST: 새로운 데이터 생성 (CRUD의 C)

3. PUT: 데이터 변경, 업데이트 (CRUD의 U)

4. PATCH: 일부 데이터 변경, 업데이트 (CRUD의 U)

5. DELETE: 데이터 삭제 (CRUD의 D)

6. HEAD: 응답 본문 없이 헤더만 요청

7. OPTIONS: 지원하는 메소드 목록 확인

8. CONNECT: 터널 연결 및 접속

9. TRACE: 메시지 전송 테스트

 

 

 

GET method와 POST method

GET

GET은 CRUD의 R를 위한 method로 데이터를 조회할 때 사용합니다.

주로 URL에 parameter를 포함시켜 요청하는 방식입니다.

URL query를 사용하므로 보안에 취약하고 전송 길이에 제한이 있으므로 데이터를 받는 용도로 적합합니다.

 

POST

POST는 CRUD의 C를 위한 method로 새로운 데이터를 추가할 때 사용합니다.

GET과 달리 body에 내용을 담아 보낼 수 있어 header를 열어보지 않는 한 데이터를 미리 확인해 볼 수 없습니다. 따라서 데이터를 좀 더 안전하게 주고받을 수 있고 전송 길이의 제한이 없으므로 서버로 데이터를 전송하는 용도로 적합합니다.

대신 header에 Content-Type으로 데이터 타입을 명시해야 합니다.

 

 

 

PUT method와 PATCH method

PUT와 PATCH는 CRUD의 U를 위한 method로 리소스를 업데이트를 할 때 사용합니다.

리소스를 업데이트 한다는 점에서는 같은 역할을 하는 메소드처럼 보일 수 있습니다.

하지만 두 개의 요청에는 약간의 차이가 존재합니다.

 

  • PUT: 리소스의 모든 데이터를 업데이트 합니다.
  • PATCH: 리스소의 일부 데이터만 업데이트 합니다.

 

예시로 다음과 같은 여러 데이터들을 저장하는 유저 정보가 있습니다.

field data
이름(name) 정송이
나이(age) 20
성별(gender) Female

 

이때, 아래 내용의 body로 각각 PUT, PATCH로 요청을 보냈을 때 결과는 다음과 같이 나옵니다.

{
  "age": 30
}

PUT

field data
이름(name)  
나이(age) 30
성별(gender)  

PATCH

field data
이름(name) 정송이
나이(age) 30
성별(gender) Female

 

즉, 하나의 리소스에 대해 여러 데이터를 객체로 수집하여 서버로 보내는 경우에서

PUT method는 보내지지 않은 데이터에 대해서는 null 값으로 업데이트 합니다.

하지만 PATCH method는 기존 데이터를 유지하는 방식으로 대응합니다.

 

 

Reference

 

'Level Up > Study' 카테고리의 다른 글

[JavaScript] IIFE  (0) 2021.06.21
[CS] 가비지 컬렉션  (0) 2021.06.20
[JavaScript] rest syntax와 spread syntax  (0) 2021.06.19
[HTML] <script> 태그  (0) 2021.06.14
[CS] 문자열과 유니코드  (0) 2021.06.12

공유하기

facebook twitter kakaoTalk kakaostory naver band