GET, POST 차이점

미어캣의 개발일지·2023년 7월 4일
0

📚 GET, POST

📕 GET, POST 란?

GET은 가져온다는 개념, POST는 수행한다는 개념

Get은 서버에서 어떤 데이터를 가져와서 보여줄때 사용

Post는 서버상의 데이터 값이나 상태를 바꾸기 위해서 사용




📕 GET

GET method는 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드.

  • 데이터를 읽거나(Read), 검색(Retrieve)할 때에 사용되는 method
  • GET 요청을 전송할 때 URL 주소 끝에 파라미터로 포함되어 전송됨(쿼리 스트링)
  • 방식은 URL 끝에 ?를 붙이고 그다음 변수명1=값1&변수명2=값2... 형식으로 붙이면 된다.
  • 요청 파라미터가 여러 개이면 &로 연결한다.
  • ex) www.example.com/show?name1=value1&name2=value2

📖 GET 특징

  • GET 불필요한 요청을 제한하기 위해서 요청이 캐시될 수 있다..
  • GET 요청은 브라우저 히스토리에 남는다.
  • GET 요청은 북마크 될 수 있다.
  • GET 요청은 길이 제한이 있다.
  • GET 요청은 파라미터에 내용이 노출되기 때문에 중요한 정보를 다루면 안된다.
  • GET은 데이터를 요청할때만 사용 된다



📕 POST

POST method는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됨

  • GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아 전송
  • HTTP 메세지의 Body는 길이의 제한없이 데이터를 전송할 수 있다.
  • POST 요청은 GET과 달리 대용량 데이터를 전송할 수 있다.
  • POST 요청도 내용을 확인할 수 있기 때문에 민감한 데이터의 경우에는 반드시 암호화해 전송

📖 POST 특징

  • POST 요청은 캐시되지 않는다.
  • POST 요청은 브라우저 기록에 남아 있지 않는다.
  • POST 요청을 북마크에 추가할 수 없다.
  • POST 요청은 데이터 길이에 대한 제한이 없다.



📕 GET POST 차이점

GETPOST
캐시OX
브라우저 기록OX
북마크 추가OX
데이터 길이 제한OX
HTTP 응답 코드200(Ok)201(Created)
주사용처리소스 요청리소스 생성
리소스 전달 방식쿼리스트링HTTP Body

GETPOST의 특징만 보아도 차이가 나긴하지만 추가적으로 차이점을 정리해보면 다음과 같다.

  • 사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.

  • DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 보면 된다.

  • 요청에 body 유무 : GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없다. POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.

  • 멱등성 (idempotent) : GET 요청은 멱등이며, POST는 멱등이 아니다.

멱등이란?

멱등의 사전적 정의는 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
GET은 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같을 것 이다. 반대로 POST는 리소스를 새로 생성하거나 업데이트할 때 사용되기 때문에 멱등이 아니라고 볼 수 있다. (POST 요청이 발생하면 서버가 변경될 수 있다.)

📕 참조

https://noahlogs.tistory.com/35
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

profile
이게 왜 안되지? 이게 왜 되지?

0개의 댓글