HTTP Method인 GET, POST의 차이

돼지·2022년 4월 25일
0

개발공부

목록 보기
7/17

GET vs POST

Get은 가져온다는 개념이고, Post는 수행한다는 개념으로 받아들이면 쉽다.

Get

  • GET method는 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드
  • 서버에서 어떤 데이터를 가져와서 보여줄 때 사용
  • 값이나 내용, 상태 등이 바뀌지 않는 경우에 사용
  • GET은 요청을 전송할 때 URL 주소 끝에 파라미터로 포함하여 전송(쿼리 스트링)
  • 요청이 여러개면 &로 연결
  • 데이터를 전송할 때 길이 제한이 있음
  • 불필요한 요청을 제한하기 위해 캐시 될 수 있음
  • 브라우저에 기록이 남음
  • 요청 성공시 200 응답코드
  • idempotent 함
  • CRUD 중 R에 해당

Post

  • POST method는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는데 사용
  • 전송해야 될 데이터를 HTTP 메세지의 Body에 담아서 전송
  • Body의 타입은 요청 헤더의 Content-Type에 요청 데이터의 타입을 표시함에 따라 결정
  • 데이터를 전송할 때 길이 제한이 없음
  • 이처럼 눈에 보이지 않게 전송되어 안전하다고 생각할 수 있으나 개발자도구 같은 툴로 요청내용을 확인 할 수 있어 꼭 암호화 전송해야 함
  • 요청은 캐시되지 않음
  • 브라우저 기록에 남지않음
  • 북마크에 추가할 수 없음
  • 자원생성은 201(Created) 코드반환
  • idempotent 하지 않음
  • CRUD 중 CUD 가능

idempotent란

idempotent는 멱등법칙(冪等法則) 또는 멱등성(冪等性)이란 뜻으로, 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.

연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질

정리하자면 Get요청은 서버에 여러번 요청해도 동일한 응답이 돌아와야 하며
Post는 여러번 요청해도 항상 다를 수 있다.

그림 요약

POST는 상태 변경이 가능 하다고 하나
생성 - POST
수정 - PUT, PATCH
삭제 - DELETE
처럼 용도에 맞는 메소드 사용하는 것을 권장한다.

출저 : https://velog.io/@songyouhyun/Get%EA%B3%BC-Post%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%95%84%EC%8B%9C%EB%82%98%EC%9A%94
https://hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/

profile
먐미

0개의 댓글