ABOUT
home
무료 콘텐츠
home
2️⃣

HTTP resquest method 중 GET과 POST를 비교 설명해 주세요.

[핵심 답변]
GET 메소드는 클라이언트가 서버에게 리소스를 요청할 때 사용하는 메소드이고, POST 메소드는 서버에게 데이터 처리(주로 생성)를 요청할 때 사용하는 메소드입니다.
GET 요청의 경우 필요한 정보를 특정하기 위해 URL 뒤에 Query String을 추가하여 정보를 조회하고, POST 요청의 경우 전달할 데이터를 Body 부분에 포함하여 통신합니다.
GET 요청의 경우 URL 뒤의 Query String까지 포함해서 브라우저 히스토리에 남게 되고 캐시가 가능하지만, POST 요청의 경우 브라우저 히스토리에 남지 않고 캐시도 불가능합니다.
[면접  TIP]
HTTP method를 묻는 면접 질문은 굉장히 자주 나옵니다. 특히 GET과 POST를 비교하는 질문이 가장 자주 나옵니다. 해당 유형의 문제의 경우 GET과 POST의 차이점을 중심으로 공부를 해두시는게 좋습니다. 중요한 차이점은 전달할 데이터를 어디에 포함시켜서 전송하는지, 이 차이점으로 인하여 캐시가능 여부, 보안 그리고 용도도 달라지겠죠. GET, POST 뿐 아니라 PATCH, PUT도 면접에서 종종 물어봅니다. 이 질문을 처음 받았을 때, 저는 대비가 안된 상태라 대답을 전혀 하지 못했어요. 개인 프로젝트를 할 때 GET과 POST는 굉장히 자주 사용해서 잘 알고 있었지만, PUT과 PATCH는 잘 사용하지 않았고 원칙없이 사용했었거든요. 두 method 모두 서버의 리소스를 수정한다는 점에서 비슷한 것 같지만 큰 차이가 있습니다. PUT은 모든 리소스! PATCH는 일부 리소스! 이런 내용을 중심으로 답변을 잘 준비해보도록 해요!

Method

1.
GET : 리소스 조회
GET method는 클라이언트가 서버에게 정보를 요청할 때 사용하는 method 입니다. GET을 통한 요청은 URL 주소 끝에 key-value 쌍으로 parameter를 포함하여 전송을 하는데, 이 부분을 Query String을 이라고 부릅니다.
GET의 주요한 특징중 하나는 캐시가 가능하다는 것입니다. 한 번 서버에 GET요청을 한적이 있다면 브라우저가 그 결과를 저장해 둡니다. 이후 동일한 요청은 브라우저에 저장된 값으로 가져올 수 있습니다.
query sting
2.
POST : 요청 데이터 처리 (주로 생성)
POST method는 클라이언트가 body를 통해 전달한 데이터를 서버가 처리하도록 요청하는 method 입니다. 서버는 POST 메시지를 받으면 꼭 리소스를 등록하는 것만 아니라, 리소스마다 다양하게 처리를 합니다. 데이터를 생성하거나 변경하기도 하지만 특정 프로세스를 처리하기도 합니다.
3.
PUT : 리소스를 대체, 해당 리소스가 없으면 생성
4.
PATCH : 리소스의 일부분을 수정
ex)
// Server resource // Before user/10 { name: Noname, language: C++ } // Request PUT user/10 { name: Nossi, } // After user/10 { name: Nossi, }
JSON
복사
// Server resource // Before user/10 { name: Noname, language: C++ } // Request PATCH user/10 { name: Nossi } // After PATCH user/10 { name: Nossi, language: C++ }
JSON
복사
[꼬꼬무 문답]
Q. HTTP resquest method중 Put vs Patch을 비교 설명해주세요.