Put과 PATCH의 차이
PUT
PUT 요청은 페이로드를 사용해 새로운 리소스를 생성하거나 대상 리소스의 데이터를 대체한다.
-> PUT은 DB의 기존 row를 새로운 데이터로 교체하거나 기존 row가 없을 경우 해당 데이터로 단순 저장한다.
PATCH
PATCH 요청은 리소스의 부분적인 수정을 한다.
-> PATCH는 기존 row 안에서 요청받은 데이터만 수정한다.
우리가 PathVariable이나 RequestParam을 받아 Update를 사용할 때 PUT은 해당 데이터가 없으면 새로 생성하지만 PATCH는 해당 데이터가 없으면 오류가 발생한다.
쉽게 말해 PUT은 새로운 부품을 만들거나, 교체하는 것 PATCH는 기존 부품을 고치는 것이라고 생각하면 편하다.
HTTP 프로토콜
HTTP 프로토콜이란?
HTTP는 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이며 어떤 종류의 데이터든 전송할 수 있도록 설계되어있다.
HTTP 프로토콜의 동작 방식
사용자가 url등으로 요청(request)하면 서버는 해당 요청에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 작동한다.
GET /servlet/query?a=10&b=90 HTTP/1.1
Host: www.sk.com
User-Agent: Mozilla/5.0
Accept-language:kr
첫번째 줄에는 요청메소드, 요청 URL, HTTP프로토콜 버전을 담는다.
요청할 때에 함께 보낼 데이터를 담아낸다.
요청메소드가 POST나 PUT처럼 요청과 자원을 함께 보내야할 때 담아낸다.
GET 방식은 요청할 때 가지고 가야 하는 자원도 URL에 붙어있기 때문에 요청바디가 없다.
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 35653
Content-Type: text/html;
<!DOCTYPE html>
<html lang="ko" data-reactroot="">
첫번재 줄에는 HTTP 포로토콜의 버전, 응답코드, 응답메세지를 담는다.
ex) 응답 코드가 200이면 성공 / 400,404,500, ... 등은 오류코드
빈줄 다음에 나오는 것이 실제 응답 리소스 데이터가 나오는 부분이다.