학이시습
[CS] HTTP 메서드의 종류 & 속성 본문

HTTP 메서드
HTTP 메서드란 클라이언트와 서버 사이에서 이루어지는 요청(request)과 응답(response) 데이터를 전송하는 방식입니다.
HTTP 메서드 종류
HTTP 메서드에는 총 9가지가 있으며 주로 쓰는 메서드는 5가지입니다.
주요 메서드 (5가지)
- GET : 리소스 조회
- POST : 데이터 추가, 등록
- PUT : 리소스 덮어쓰기 (해당 리소스가 없으면 생성)
- PACTH : 리소스 부분 변경 (PUT은 전체 변경, PACTH는 부분 변경)
- DELETE : 리소스 삭제
기타 메서드 (4가지)
- HEAD : GET과 동일한 메시지 부분(Body)를 제외하고 조회 (상태 줄과 헤더만 반환)
- CONNECT : 대상 자원으로 식별되는 서버 대한 연결 요청
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션 (메서드)을 설명 (주로 CORS에서 사용)
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
메서드의 속성
메소드는 속성은 다음과 같이 3가지 속성이 있고, 이 속성들은 메서드의 특징을 알 수 있습니다.
- 안전함 (Safe)
- 멱등성 (Idempotent)
- 캐시 가능 (Cacheable)
안전함 (Safe)
HTTP 메서드가 리소스의 상태를 바꾸지 않으면 그 메서드는 안전하다고 말합니다.
예를 들면, 수정하는 작업을 수행하는 메서드는 안전하지 않고, 읽기 작업만 수행하는 메서드는 안전합니다.
수정하는 작업을 수행하는 메서드는 리소스의 상태를 바꾸기 때문에 안전하지 않고 읽기 작업 (조회)만 하는 메서드는 리소스를 바꾸지 않고 불러오기만 하기 때문에 안전합니다.
HTTP 메서드 중에서 안전한 메서드는 GET, HEAD, OPTIONS입니다. 모든 안전한 메소드는 멱등성 또한 가지고 있지만 멱등성을 지닌 메서드가 안전한 것은 아닙니다. 어떤 말인지는 아래에서 보도록 하겠습니다.
멱등성 (Idempotent)
수학이나 전산에서 멱등성은 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미합니다.
동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다.
예를 들면, 어떤 숫자에 1을 곱하는 연산은 여러번 수행해도 처음 1을 곱한 것과 같은 숫자가 되기 때문에 멱등합니다.
HTTP 메서드 중에서 멱등성을 가진 메서드는 GET, HEAD, PUT, DELETE, OPTIONS, TRACE가 있습니다.
멱등성을 지닌 메서드가 안전한 것은 아니라는 이유는 PUT과 DELETE는 멱등한 메서드지만, 리소스에 변화를 일으키기 때문입니다.
멱등성을 따질 때는 실제 서버의 백엔드 상태만 보면 되며, 각 요청에서 반환하는 응답 코드는 다를 수 있습니다.
캐시 가능 (Cacheable)
캐시 가능한 응답은 캐시할 수 있는 HTTP 응답으로, 나중에 검색하고 사용하기 위해 저장하여 새 요청을 서버에 저장합니다.
여기서 캐시란? 일시적인 특징이 있는 (정적인?) 데이터나 결과값의 복사본을 저장함으로써 처리 속도를 향상시키며, 이를 통해 향후 요청을 더 빠르게 처리할 수 있는 것입니다.
HTTP 메서드에서 캐싱 가능한 메서드는 GET, HEAD, POST, PATCH가 있습니다.
참고한 글들
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
'CS' 카테고리의 다른 글
[CS] HTTP 상태 코드란? (0) | 2024.04.08 |
---|