서버에 데이터를 전송하는 방법으로는 HTTP
요청의 body
, query
, params
세 가지가 있습니다.
Body
JSON
, XML
등의 형식으로 전송이 가능합니다.Query
URL
뒤에 key=value
형식으로 전송됩니다.URL
이 길어져 가독성이 떨어집니다.Params
URL
의 일부로 전송되어 가독성이 좋습니다.따라서, 데이터의 크기와 구조, 전송 방식의 가독성, 요청 처리 속도 등을 고려하여 적절한 방법을 선택해야 합니다. 일반적으로는 데이터 양이 많은 경우에는 body
, 검색 기능과 같이 데이터 양이 적고 간단한 경우에는 query
또는 params
를 사용합니다.
HTTP 메서드 별로 데이터를 전송하는 방식은 다음과 같습니다.
GET
메서드Body
: 없음Params
: 요청 URL에 포함된 경로 파라미터 사용. 리소스를 특정하는 값을 주로 넣는다. Query
: 요청 URL에 포함된 쿼리 파라미터 사용. 단순하고 노출되도 상관없는 경우GET
메서드는 서버로부터 데이터를 가져오는 용도로 사용되며, 보통 요청 URL에 필요한 데이터를 쿼리 파라미터나 경로 파라미터로 전달합니다. Body
에 데이터를 전송할 경우, 보안 이슈나 캐시 불가능 등의 이유로 GET
요청에서는 사용하지 않습니다.
POST
메서드Body
: 요청 바디에 데이터 전송. 비교적 복잡하고 큰 데이터Params
: 없음Query
: 없음POST
메서드는 서버에 새로운 리소스를 생성하거나 요청 바디에 있는 데이터를 이용해 처리할 때 사용됩니다. POST
메서드에서는 요청 바디에 데이터를 담아서 전송합니다.
PUT
메서드Body
: 요청 바디에 데이터 전송. 비교적 복잡하고 큰 데이터Params
: 요청 URL에 포함된 경로 파라미터 사용. id 값 등Query
: 없음PUT
메서드는 서버에 존재하는 리소스의 전체 정보를 수정할 때 사용됩니다. 요청 바디에 데이터를 담아서 전송하며, 경로 파라미터를 사용해 어떤 리소스를 수정할 것인지 지정합니다.
PATCH
메서드Body
: 요청 바디에 데이터 전송Params
: 요청 URL에 포함된 경로 파라미터 사용. id 값 등Query
: 없음PATCH
메서드는 PUT
메서드와 유사하지만, 리소스의 일부 정보만 수정할 때 사용됩니다. 요청 바디에 일부 데이터를 담아서 전송하며, 경로 파라미터를 사용해 어떤 리소스를 수정할 것인지 지정합니다.
DELETE
메서드Body
: 없음Params
: 요청 URL에 포함된 경로 파라미터 사용Query
: 없음DELETE
메서드는 서버에 존재하는 리소스를 삭제할 때 사용됩니다. 경로 파라미터를 사용해 어떤 리소스를 삭제할 것인지 지정합니다. Body
에 데이터를 전송하는 것은 삭제와 관련이 없으므로 사용하지 않습니다.