HTTP 요청 메서드는 클라이언트가 서버에 요청을 보낼 때 사용하는 방법을 의미합니다. 각 메서드는 서버에 대해 다른 작업을 수행하도록 설계되어 있으며, 주로 CRUD (Create, Read, Update, Delete) 작업과 관련됩니다.
GET
서버로부터 데이터를 조회할 때 사용합니다.
- 서버에서 데이터를 가져올 뿐, 서버의 상태나 데이터는 변경하지 않습니다.
- URL에 데이터를 쿼리 파라미터로 포함시켜 요청합니다. (ex: https://example.com?name=Alice&age=25)
- 캐시가 가능하며, 브라우저나 서버는 GET 요청 결과를 캐싱하여 성능을 최적화할 수 있습니다.
- URL에 포함된 쿼리 스트링 길이에는 브라우저마다 제한이 있습니다.
POST
서버에 데이터를 전송할 때 사용하며, 주로 데이터베이스에 새로운 데이터를 생성하는 데 사용됩니다.
- 요청 본문(Body)에 데이터를 담아서 전송합니다.
- 서버의 상태나 데이터에 변경을 유발할 수 있습니다.
- 캐시되지 않으며, GET 요청과 달리 보안 측면에서 더 안전합니다(데이터가 URL에 노출되지 않음).
- 전송 데이터 크기에 제한이 적습니다.
PUT
서버의 기존 리소스를 완전히 교체하거나 새로운 데이터를 생성할 때 사용합니다.
- 요청 시 해당 리소스가 있으면 업데이트하고, 없으면 새로운 리소스를 생성합니다.
멱등성을 가집니다. 즉, 동일한 PUT 요청을 여러 번 수행해도 결과는 동일합니다.
멱등성(Idempotence)은 연산이나 작업을 여러 번 수행해도 결과가 동일하게 유지되는 성질을 의미합니다. 즉, 동일한 작업을 여러 번 반복해도 부작용이나 상태 변화가 없다는 것을 뜻합니다.
PATCH
서버의 기존 리소스를 부분적으로 수정할 때 사용합니다.
- 리소스 전체를 교체하는 대신, 부분적으로 수정할 수 있습니다.
DELETE
서버의 리소스를 삭제할 때 사용됩니다.
- 리소스를 삭제하고, 삭제된 리소스는 더 이상 접근할 수 없습니다.
HEAD
GET과 유사하지만, 헤더 정보만 요청하고, 본문은 포함하지 않습니다.
- 서버 응답 상태나 헤더 정보를 확인할 때 유용합니다.
- 데이터 전송 없이 리소스가 존재하는지 여부를 확인할 수 있습니다.
OPTIONS
서버가 어떤 HTTP 메서드를 지원하는지 확인할 때 사용됩니다.
- 주로 서버의 기능을 탐색하거나 CORS(교차 출처 리소스 공유) 설정을 확인할 때 사용됩니다.