Get과 Post 차이점

이유진·2022년 3월 17일
0

면접에서 받은 질문이고, 네트워크의 기초적인 질문이였지만 내가 부끄러운 대답을 했음을 알게 해주었다.
그래서, 다시한번 Get과 Post의 차이점과 각각의 특징을 다시 공부하면서 작성해보려고 한다.


Get과 Post는 HTTP 프로토콜을 이용해서 서버에 요청할때 사용하는 방식이라는 것을 알고 있을 것이다.

Get

특징

  • 서버로부터 정보를 조회하기 위해 설계된 메서드
  • get method는 URL 끝에 Parameter를 붙여서 서버로 정보를 요청한다.(query string으로 전달)
  • 길이 제한이 있어서 대용량의 데이터를 전송하기에 어려움이 있다.
  • 보안상의 취약하다 --> why? parameter로 요청정보를 보내기 때문에 눈으로 확인 가능하다.
  • body가 비어 있는 상태로 전송한다.
  • 요청과 응답이 브라우저에 cache(캐싱) 되므로, post 방식보다 빠르다.

Post

특징

  • 서버로 리소스를 생성하거나 업데이트하기 위하여 데이터를 보낼 때 사용되는 메서드
  • post method는 get과 다르게, 길이 제한없이 body에 데이터를 담아서 전송한다.
  • 대용량의 데이터를 전송하기에 적합하다.
  • get 방식보다 보안상으로 안전하다 --> why? 데이터를 body에 담아서 정보를 전송하기 때문이다.

get과 post의 차이

1. 사용목적

get은 서버에 데이터 요청할때 사용하고,
post는 새로 생성 또는 업데이 할때 사용한다.

2. body유무

get은 URL parameter에 데이터를 전달하므로 body가 없고,
post는 body에 데이터를 담아서 전달하므로 body가 있다.

3. 멱등성

동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과(결과)를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다.

  • 멱등성 O : PUT, DELETE, TRACE, GET, HEAD, OTIONS

  • 멱등성 X : POST

  • get방식은 동일한 요청을 해도, 동일한 응답이 나오는 반면
    post방식은 동일한 요청(ex.동일한 유저의 회원가입)을 최소 2번이상 진행할 경우, 동일한 유저를 여러번 회원가입 시키지 않는다.(즉, 첫 요청시 회원가입 성공, 두번째 요청부터 이미 가입된 유저 라는 답변)

참고
참고
참고

profile
차근차근 배워나가는 주니어 개발자

0개의 댓글