VS시리즈 - GET vs POST

김현교·2023년 12월 12일
0

VS시리즈

목록 보기
2/12

HTTP 패킷

  • 클라이언트가 서버로 요청을 했을때, 보내는 데이터
  • HTTP패킷의 구조는 크게 헤더와 바디로 나뉘어짐

GET vs POST

웹에서 데이터를 서버에 보내거나 서버로부터 데이터를 받아오는 데
사용되는 HTTP 프로토콜의 두 가지 주요한 방식

GET 방식

  • 데이터 전송 : URL의 파라미터에 데이터를 포함하여 서버에 요청을 보냄
  • 보안 : URL에 데이터가 노출되므로 민감한 정보를 전송하는 데 적합하지 않음
  • 캐시 : 동일한 요청을 반복할 경우 브라우저가 응답을 캐시하여 빠르게 제공 가능
  • 사용 : 데이터 검색, 조회 등과 같이 서버에서 정보를 가져오는 데 주로 사용
  • HTTP패킷의 헤더에 포함되여 서버에 요청
  • Body에 특별한 내용을 넣을 것이 없으므로 Body가 빈상태로 보내짐
  • 리소스 요청

POST 방식

  • 데이터 전송 : HTTP 요청의 Body에 데이터를 담아 전송
  • 보안 : 민감한 정보를 전송할 때에도 안전하게 데이터를 전송 가능
  • 데이터 크기 : GET 방식보다 큰 데이터를 전송할 수 있음
  • 사용 : 로그인 정보, 결제 정보 등과 같이 보안적으로 민감한 정보를 전송하는 데 주로 사용
  • BODY를 통해 서버로 요청 데이터 전달
  • 리소스 생성

차이점

  • GET은 URL에 데이터를 포함하여 전송하고, POST는 HTTP 요청의 Body에 데이터를 담아 전송
  • GET은 URL에 노출되어 보안에 취약하지만, POST는 안전하게 데이터를 전송
  • GET은 주로 데이터 조회에, POST는 데이터 생성 및 업데이트에 사용
  • GET은 캐시 가능성이 있어 반복 요청 시 빠른 응답이 가능하지만, POST는 그렇지 않음

멱등

  • 동일한 연산을 여러 번 수행해도 동일한 결과가 나타나야 한다는 것
  • GET : 서버에 동일한 요청을 여러 번 전송해도, 동일한 응답이 돌아옴
  • POST : 서버에 동일한 요청을 여러 번 전송해도 각기 다른 응답을 받을 수 있음

결론

  • 설계 원칙에 따라서 적절하게 사용되어야 함
  • 어떤 방식이든 보안은 항상 중요

profile
내가 공부하면서 궁금했던 걸 올리는 개발 블로그

0개의 댓글