HTTP Method
클라이언트 - 서버 구조에서 요청(request)와 응답(reponse)가 이루어지는 방식
메서드는 안전성(safe), 멱등성(idempotent), cacheable(캐시) 등을 제공할 수 있다.
메서드 종류
- GET : 특정 리소스의 조회
- POST : 데이터 추가, 등록
- PUT : 리소스 대체, 수정/ 해당 리소스가 없으면 새롭게 생성
- DELETE : 리소스 삭제
- PATCH : 리소스 부분 변경(수정)
- HEAD : GET과 동일하나, HTTP 메세지의 body 부분을 제외하고 조회
- OPTIONS : 서버와 브라우저가 통신하기 위한 통신 옵션을 확인하기 위함
- 서버가 어떤 method, header, content-type 을 제공하는지 알 수 있다.
- CONNECT : 대상 자원으로 식별되는 서버에 대한 연결 요청
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트르 수행
안전성(safe)
- HTTP 메서드의 안전성이란, 해당 메서드를 호출해도 리소스가 변경되지 않는 성질을 말한다.
- 읽기 작업만 수행하는 메서드는 안정성이 있다고 할 수 있다.
- HTTP메서드 중 GET, HEAD, OPTIONS가 안전하다.
- 모든 안정성 있는 메서드는 멱등성 또한 갖는다.
멱등성(idempotent)
- HTTP 메서드의 멱등성이란, 동일한 요청을 여러 번 호출해도 동일한 결과를 갖는 것을 말한다.
- 즉, 요청 횟수에 상관없이 같은 결과를 갖고 서버의 상태도 동일하게 남는 것을 말한다.
- GET, HEAD, OPTIONS, PUT, DELETE 의 메소드는 멱등성을 가진다.
- 멱등성 메서드
- GET, HEAD, OPTIONS, PUT, DELETE 의 메소드는 멱등성을 가진다.
- GET, HEAD ,OPTIONS 는 안정성을 가지고 있기에 멱등성도 가진다.
- PUT : 리소스를 완전히 교체하여 동일한 결과를 만든다.
- DELETE : 리소스를 삭제하고 상태코드를 응답하기 때문에 멱등성을 가진다.
- DELETE가 목록의 마지막 항목을 제거 하게 되면 멱등성을 위배할 가능성도 있다.
- 비 멱등성 메서드
- POST : 요청 시 새로운 리소스를 생성
- PATCH : 동작이 증가를 통한 변경일 경우 다른 결과를 가짐
캐시 가능(Cacheable)
캐시 가능성은 응답 결과를 캐싱해서 효율적으로 사용할 수 있는가의 여부
캐시 가능한 메서드는 캐시할 수 있는 HTTP 응답을 생성하여 이후 동일한 리소스에 대한 재요청을 방지한다.
캐시란?
캐시(Cache)란 데이터 값을 미리 복사해 놓는 임시 저장소를 가리킨다.
처음 웹 사이트에 접속할 때 서버로부터 리소스(HTML 파일, JavaScript, 이미지)를 모두 받아옵니다.
이후 클라이언트가 서버에 한 번 요청했던 데이터를 매 요청마다 다시 전송할 필요가 없도록 웹 브라우저는 리소스를 캐시 합니다. 웹 사이트에 재방문할 경우 캐시에서 리소스를 가져오기 때문에 더욱 빠르게 로드됩니다.
캐시 가능한 메서드는?
- 캐시 가능 메서드 : GET, HEAD, POST, PATCH
- POST 와 PATCH는 데이터 변경이 되는 메서드로서 구현의 복잡성, 유지의 어려움 때문에 잘 사용하지 않음
- 캐시 불가능 메서드 : DELETE, PUT, OPTIONS, CONNECT
'CS' 카테고리의 다른 글
프로세스와 스레드의 차이 (0) | 2025.03.12 |
---|---|
CORS(교차 출처 리소스 공유) (0) | 2025.03.11 |
GET과 POST의 차이점 (0) | 2025.03.08 |
HTTP와HTTPS (0) | 2025.03.08 |
HTTPS의 SSL HandShake (0) | 2025.03.07 |