HttpMethod란 클라이언트와 서버사이에 이루어지는 요청과 응답데이터를 전송하는 방식을 일컫는다.
특히, 클라이언트가 서버에게 해당 URI에 요청을 보낼때 이러한 방식으로 요청을 보냅니다~ 라고 알려주는 것이다.
1. HttpMethod 종류
(1) GET
특정 리소스 표시 (읽기)
(2) POST
특정 리소스에 엔티티를 제출할때 사용 (추가)
(3) PUT
목적 리소스를 요청 데이터로 바꾼다. 데이터가 없다면 추가한다. (전체 수정 or 추가)
(4) PATCH
리소스의 부분만을 수정하는데 사용한다. (부분 수정)
(5) DELETE
특정 리소스 삭제
(6) HEAD
GET method와 같지만 Body를 포함하지 않는다.
(7) OPTIONS
목적 리소스의 통신을 설정하는데 사용, 내가 어떤 method에 권한이 있는지 확인 할 수 있다.(cors)
(8) CONNECT
목적 리소스로 식별되는 서버로의 터널을 맺는다.
(9) TRACE
목적 리소스의 경로를 따라 루프백 테스트를 한다. (테스트)
2. Http Method 특징
Http Method들은 몇가지 특징들이 있다.
(1) 멱등성 (GET, PUT, DELETE, HEAD)
멱등성은 같은 연산을 여러번 실행해도 항상 결과가 같다는 뜻이다.
GET은 항상 같은 결과를 가져오기 때문에 바로 이해가 됐다.
(2) 안전(GET, HEAD)
왜 GET과 HEAD는 안전해야 할까?
HEAD는 GET과 같은데 Body값만 가지고 오므로 GET으로 통합해서 말하겠다.
GET은 특정 주소를 들어갔을때 요청된다.
즉, 사용자가 "이러한 요청을 해야지" 라고 따로 요청을 하지 않아도 결과를 받아온다는 말이 된다.
하지만 다른 method들은 버튼을 누르거나 특정 행위에 의하여 사용자의 의도를 가지고 요청을 한다.
그렇기 때문에 GET은 사용자의 의도대로 작동하는게 아니기 때문에 안전하게 만들어야한다.
지금까지의 문맥으로 추론해봤을때 여기서의 안전이란 어떠한 데이터를 바꾸지 않는 것이라고 생각했다.
(3) 캐시 (GET, HEAD)
GET과 HEAD 는 캐싱을 한다.
GET으로 한번 요청한 데이터는 멱등성을 가지고 있기 때문에 다음 번에 호출을 할때도 같은 결과를 가져온다.
그렇기 때문에 캐싱을 해놓고 요청을 받을시 캐시값을 전해주면 더 효율적인 처리가 가능한 것이다.
참고
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
https://hudi.blog/http-method-idempotent/
https://www.youtube.com/watch?v=obEfiTekwTc
'개발 > 정리' 카테고리의 다른 글
[정리] URI vs URL (0) | 2023.05.22 |
---|---|
[정리] REST API (0) | 2023.05.21 |
[정리] DDD 설계 vs SQL중심 설계 (0) | 2023.05.12 |
[정리] Youtube가 가진 기능 도메인으로 정리해보기 (0) | 2023.05.10 |
[정리] 객체지향의 4가지 특징 (0) | 2023.05.03 |