본문 바로가기

CS

HTTP 메서드

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