[네트워크] http 메서드 속성

Wuchang·2023년 8월 2일

네트워크

목록 보기
4/5

다양한 HTTP 메소드

  • GET, POST, PUT, PATCH, DELETE 외 4개의 HTTP 메서드가 있다.

    • HEAD: GET 요청으로 반환될 데이터 중 BODY 부분 제외한 헤더 부분에 해당하는 데이터만 요청.
    • CONNECT: SSL사용하는 웹사이트와 양방향 연결을 시작하는 메소드. 클라이언트는 원하는 목적지와의 TCP 연결을 HTTP 프록시 서버에 요청합니다. 그러면 서버는 클라이언트를 대신하여 연결의 생성을 진행합니다. 한번 서버에 의해 연결이 수립되면, 프록시 서버는 클라이언트에 오고가는 TCP 스트림을 계속해서 프록시합니다.
      GET, POST 와 다르게 안전하지 않아 잘 사용하지 않는다.
    • OPTIONS: 해당 URL에 대해 허용된 통신 옵션을 요청하는 메서드
    HTTP/1.1 200 No Content
    Allow: OPTIONS, GET, HEAD, POST
    Cache-Control: max-age=604800
    Date: Thu, 13 Oct 2016 11:45:00 GMT
    Server: EOS (lax004/2813)
    • TRACE: 클라이언트가 서버에게 송신한 요청의 내용을 반환해 줄 것을 요청한다.
      서버-클라이언트간 루프백 테스트를 수행하여 디버깅을 위한 용도로 쓰이는 메서드

HTTP 메서드의 속성

안전(SAFE)

  • HTTP 메서드 호출해도 서버의 상태를 변경하지 않으면 '안전'하다고 함.
  • '안전' 이라는 속성은 해당 메소드에 의해 리소스가 변경되나 안되나에 대한 여부만 고려함. (짧은 시간 여러번 해당 메서드 요청해 장애 발생하는 등의 요건은 고려X)

멱등성(IDEMPOTENT)

한번 호출하든 여러번 호출하든 결과가 똑같은 것

  • GET: 멱등O 한 번 조회하든, 두 번 조회하든 같은 결과가 조회된다.
  • PUT: 멱등O 대상 리소스의 전체를 대체하기 때문에, 같은 요청을 여러번 해도 최종 결과는 같다.
  • DELETE: 멱등O 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다.
  • POST: 멱등X 두 번 호출하면 같은 결제가 중복해서 발생할 수 있다.
  • PATCH: 멱등X. 대상 리소스의 일부만 대체할 수 있기 때문에 결과가 다를 수 있다.

Cacheable

응답 결과 리소스를 캐시할 수 있는지.

  • GET, HEAD, POST, PATCH 는 캐시 가능
  • 실제로는 GET, HEAD 정도만 캐시로 사용한다고 함. POST, PATCH 는 바디의 내용까지 캐시 키로 고려해야하는데 구현이 쉽지않다.
profile
우창의 개발일지🐈

0개의 댓글