서버에 데이터를 전송하는 방법(body/query/params) 비교

hwisaac·2023년 3월 18일
0

서버에 데이터를 전송하는 방법으로는 HTTP 요청의 body, query, params 세 가지가 있습니다.

  1. Body
  • 장점: 데이터 양이 크거나 복잡한 구조를 가질 때 효율적입니다. JSON, XML 등의 형식으로 전송이 가능합니다.
  • 단점: 요청의 크기가 커지면 처리 속도가 느려질 수 있습니다.
  • 주로 회원가입, 로그인 등 사용자 정보를 입력하는 경우에 사용합니다.
  1. Query
  • 장점: 요청의 크기가 작아서 빠른 속도로 전송할 수 있습니다. URL 뒤에 key=value 형식으로 전송됩니다.
  • 단점: 데이터 양이 많아지면 URL이 길어져 가독성이 떨어집니다.
  • 주로 검색 기능에서 사용합니다.
  1. Params
  • 장점: URL의 일부로 전송되어 가독성이 좋습니다.
  • 단점: 데이터 양이 적고 단순한 형태의 데이터만 전송 가능합니다.
  • 주로 특정 ID에 해당하는 데이터를 조회하는 경우에 사용합니다.

따라서, 데이터의 크기와 구조, 전송 방식의 가독성, 요청 처리 속도 등을 고려하여 적절한 방법을 선택해야 합니다. 일반적으로는 데이터 양이 많은 경우에는 body, 검색 기능과 같이 데이터 양이 적고 간단한 경우에는 query 또는 params를 사용합니다.

HTTP 메서드 별로 비교

HTTP 메서드 별로 데이터를 전송하는 방식은 다음과 같습니다.

  1. GET 메서드
  • Body: 없음
  • Params: 요청 URL에 포함된 경로 파라미터 사용. 리소스를 특정하는 값을 주로 넣는다.
  • Query: 요청 URL에 포함된 쿼리 파라미터 사용. 단순하고 노출되도 상관없는 경우

GET 메서드는 서버로부터 데이터를 가져오는 용도로 사용되며, 보통 요청 URL에 필요한 데이터를 쿼리 파라미터나 경로 파라미터로 전달합니다. Body에 데이터를 전송할 경우, 보안 이슈나 캐시 불가능 등의 이유로 GET 요청에서는 사용하지 않습니다.

  1. POST 메서드
  • Body: 요청 바디에 데이터 전송. 비교적 복잡하고 큰 데이터
  • Params: 없음
  • Query: 없음

POST 메서드는 서버에 새로운 리소스를 생성하거나 요청 바디에 있는 데이터를 이용해 처리할 때 사용됩니다. POST 메서드에서는 요청 바디에 데이터를 담아서 전송합니다.

  1. PUT 메서드
  • Body: 요청 바디에 데이터 전송. 비교적 복잡하고 큰 데이터
  • Params: 요청 URL에 포함된 경로 파라미터 사용. id 값 등
  • Query: 없음

PUT 메서드는 서버에 존재하는 리소스의 전체 정보를 수정할 때 사용됩니다. 요청 바디에 데이터를 담아서 전송하며, 경로 파라미터를 사용해 어떤 리소스를 수정할 것인지 지정합니다.

  1. PATCH 메서드
  • Body: 요청 바디에 데이터 전송
  • Params: 요청 URL에 포함된 경로 파라미터 사용. id 값 등
  • Query: 없음

PATCH 메서드는 PUT 메서드와 유사하지만, 리소스의 일부 정보만 수정할 때 사용됩니다. 요청 바디에 일부 데이터를 담아서 전송하며, 경로 파라미터를 사용해 어떤 리소스를 수정할 것인지 지정합니다.

  1. DELETE 메서드
  • Body: 없음
  • Params: 요청 URL에 포함된 경로 파라미터 사용
  • Query: 없음

DELETE 메서드는 서버에 존재하는 리소스를 삭제할 때 사용됩니다. 경로 파라미터를 사용해 어떤 리소스를 삭제할 것인지 지정합니다. Body에 데이터를 전송하는 것은 삭제와 관련이 없으므로 사용하지 않습니다.

0개의 댓글