HTTP

HTTP 메서드

RubyRabbit 2022. 7. 30. 15:06

HTTP 메서드

  • 클라이언트가 서버에게 요청시 서버에게 무엇을 해야하는지 알려주는 정보

 

HTTP 메서드의 종류

  • GET
    • 서버의 리소스를 조회
    • 서버에 전달하고 싶은 데이터가 있을 경우 쿼리 파라미터를 통해서 전달
  • POST
    • 서버에 처리해야 할 데이터를 전송.
    • 데이터는 HTTP 메시지 바디를 통해 전달
    • 일반적으로 데이터를 저장, 등록할 때 사용
  • PUT
    • 서버에 있는 리소스를 새로운 데이터로 대체
    • 파일 시스템에서 파일을 새로운 파일로 덮어쓰기와 같은 개념
  • PATCH
    • 서버에 있는 리소스를 전송한 데이터를 통해 수정
    • 파일 시스템에서 파일을 열어 수정한 것과 같은 개념
  • DELETE
    • 서버에 있는 리소스를 삭제

 

HTTP 메소드의 안정성 / 멱등 / 캐시가능여부

출처 - https://ko.wikipedia.org/wiki/HTTP

  • 안정성
    • 서버에게 리소스를 요청시 서버에 어떠한 작용도 없다는 것을 의미함
      • 요청시 리소스 및 관련 데이터를 조회하는 GET, HEAD, OPTIONS, TRACE 메소드의 경우 안전한 메소드에 속함
      • 요청이 리소스를 등록, 수정, 삭제 등 변경을 요청하는 POST, PUT, DELETE, PATCH 메소드의 경우 안전하지 않음
  • 멱등
    • 서버에게 같은 내용의 요청을 여러번 하더라도 결과가 동일한 경우 (서버에서 단일 클라이언트의 요청만 처리할 경우)
    • GET의 경우 몇 번을 요청하더라도 같은 결과가 조회됨
    • POST의 경우 요청 수에 따라 결과가 달라질 수 있음 (ex - 게시판에 게시글을 등록 시. 같은 내용으로 여러번 등록시 처음 등록된 글과 마지막에 등록된 글은 내용만 동일한, 다른 게시글 번호를 가진 다른 리소스)
    • PUT의 경우 요청 수에 상관없이 같은 내용으로 요청한다면 최종적으로 그 내용으로 리소스가 대체됨
    • DELETE의 경우 요청 수에 상관없이 해당 리소스가 삭제된 상태가 됨
  • 캐시 가능
    • 응답 결과 리소스를 캐시, 저장할 수 있는 경우