GET 과 POST 의 차이점

노경준·2022년 3월 31일
2

개발자라면 알아야하는 지식들을 정리하기위해 '개발자라면 알아야하는 필수 지식!'시리즈를 출간하였습니다.
벨로그를 잘 안써봐서 조금 미숙하며, 정보를 제공해주신 여러 개발자분들께 감사인사를 드립니다 🙇‍♂️
글에대한 오타 & 피드백은 언제나 달게 받습니다.
한번씩 읽어보시고 모두 득이되었으면 하는 바램으로 만들었습니다!

이번 편은 HTTP Method 중에 자주 사용되는 GET 과 POST 의 차이점에 대해 알아보겠습니다.

GET 과 POST 란?

서버와 클라이언트가 소통을 하려면 어떻게 해야할까요?
바로 HTTP Method 라는 규칙을 사용합니다.

REST 란?

Representational State Transfer 의 약자입니다.
HTTP 요청을 보낼때에 규칙을 정하자는 의미로 REST를 설계했지만 설계법이 어려워 지키기가 힘듭니다.

  • 자원(Resource) : URI
  • 행위(Verb) : HTTP Method
  • 표현(Representations)

여기서 행위가 우리가 알아야할 HTTP Method 가 나옵니다.

그래서 HTTP Method는?

HTTP Method 는 GET, POST, PUT, DELETE 클라이언트 에서 서버로 요청을 보낼때 사용하는
행위 라고 생각하면됩니다.

가볍게 HTTP Method 를 정의를 하자면

조회 : GET
등록 : POST
수정 : PUT
삭제 : DELETE

이렇게 정의할 수 있습니다.
( GET,POST,PUT,DELETE 요청 이외에도 4가지의 HTTP Method 가 있지만 이번 글에는 포함하지 않겠습니다. )

이제 이번 글의 메인 주제인 GET 과 POST 에 대해 다뤄보겠다.

GET

GET 메소드는 주로 데이터를 읽거나, 검색 할 때에 사용되는 메소드이다.
GET 메소드는 성공 했다면 XML 혹은 JSON 으로 200 응답 코드와 함께 응답한다.
주로 에러가 발생하면 404 (Not Found) 이나 400(Bad Request) 코드로 응답한다.
GET 메소드는 body에 데이터를 넣을 수 없다.
GET 메소드는 요청을 보낼때 데이터를 보내려면 주로 URL 에 표현하는 쿼리스트링을 사용한다.

GET /user/1    -> 1번 유저를 조회하고 싶을때 보내는 http request

GET 요청은 Body 와 Content-Type 이 비워져 있습니다.

POST

POST 메소드는 주로 새로운 리소스를 생성(create) 할 때 사용됩니다.
POST 메소드의 특징으로는 GET 요청과는 다르게 body에 데이터를 담아서 전송할 수 있습니다.
POST 메소드의 장점으로는 body 안의 다량의 데이터를 넣을 수 있고, 민감한 정보도 보낼 수 있습니다.

POST /user
body : {date : "example"}
Content-Type : "application/json"       -> /user 의 url 로 body 데이터를 JSON 형식으로 보내는 http request

그래서 GET 과 POST 의 차이점은?

  • GET 메소드는 주로 조회, 검색을 할때 사용하고 POST 메소드는 주로 새로운 리소스를 생성 할때 사용합니다.
  • GET 메소드는 데이터를 담을때 쿼리스트링을 사용하고, POST 메소드는 데이터를 보낼때 body를 이용합니다.
    ( 그래서 GET 메소드는 데이터가 url로 다 노출이 되기때문에, body 에 데이터를 담는 POST 메소드 보다는 보안이 취약하다는 단점이 있습니다. )

참고한 레퍼런스

profile
커뮤니케이션을 좋아하는 개발자

0개의 댓글