API URI는 리소스만을 식별하기에 메소드로 이에 따른 행위를 분리한다.
예를 들어 "회원"이라는 리소스를 가지고 메소드를 사용해 행위를 한다고 가정해보자.
회원 목록 조회 : /members
회원 조회 : /members/{id}
회원 등록 : /members/{id}
회원 수정 : /members/{id}
회원 삭제 : /members/{id}
이렇게 URI를 사용하게 되는데, 이것은 리소스를 식별한 것이고 메서드의 종류에 따라 하는 행위가 달라진다.
대표적인 주요 메서드와 기타 메서드로 나뉜다.
HTTP 메서드 종류
- 주요 메서드
- GET : 해당 리소스를 조회
클라이언트가 서버로 회원목록을 조회하면 서버에서 클라이언트로 응답데이터를 출력한다.
바디 메세지를 사용하기도 하지만 거의 사용되지 않는다. - POST : 요청 데이터 처리 및 등록
바디의 메세지를 통해 서버로 요청 데이터를 전달하면 서버에서 모든 요청 데이터를 처리한다.
이 때 서버에서 신규 리소스 데이터를 생성한다. - PUT : 리소스 대체 기능이지만 리소스가 없으면 생성
- PATCH : 리소스 부분 변경
- DELETE : 리소스 삭제
- GET : 해당 리소스를 조회
- 기타 메서드
- HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
- CONNECT : 대상 리소스로 식별되는 서버에 대한 터널을 설정
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
HTTP 메서드의 속성

안전(Safe)
- 호출해도 리소스가 변경되지 않는 것
- 해당 리소스만 고려하며 그 외의 에러는 고려하지 않는다.
멱등(Idempotent)
- 호출의 횟수와 상관없이 결과가 같은 것
- 제대로 요청이 되었나 확인을 위해 한 번 더 메서드를 요청할 때 멱등한 것만 가능하다.
캐시가능(Cacheable)
- 응답 결과 리소스를 캐시해서 사용할 수 있는 것
- 실제로는 GET, HEAD 정도만 캐시로 사용한다.
- POST, PATCH는 본문 내용까지 캐시 키로 고려해야 해서 구현이 쉽지 않다.
'computer science' 카테고리의 다른 글
[CS] HTTP 기본 (0) | 2024.04.16 |
---|---|
[CS] TCP & UDP (0) | 2024.04.15 |
[CS] CSR & SSR (0) | 2024.04.13 |
API URI는 리소스만을 식별하기에 메소드로 이에 따른 행위를 분리한다.
예를 들어 "회원"이라는 리소스를 가지고 메소드를 사용해 행위를 한다고 가정해보자.
회원 목록 조회 : /members
회원 조회 : /members/{id}
회원 등록 : /members/{id}
회원 수정 : /members/{id}
회원 삭제 : /members/{id}
이렇게 URI를 사용하게 되는데, 이것은 리소스를 식별한 것이고 메서드의 종류에 따라 하는 행위가 달라진다.
대표적인 주요 메서드와 기타 메서드로 나뉜다.
HTTP 메서드 종류
- 주요 메서드
- GET : 해당 리소스를 조회
클라이언트가 서버로 회원목록을 조회하면 서버에서 클라이언트로 응답데이터를 출력한다.
바디 메세지를 사용하기도 하지만 거의 사용되지 않는다. - POST : 요청 데이터 처리 및 등록
바디의 메세지를 통해 서버로 요청 데이터를 전달하면 서버에서 모든 요청 데이터를 처리한다.
이 때 서버에서 신규 리소스 데이터를 생성한다. - PUT : 리소스 대체 기능이지만 리소스가 없으면 생성
- PATCH : 리소스 부분 변경
- DELETE : 리소스 삭제
- GET : 해당 리소스를 조회
- 기타 메서드
- HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
- CONNECT : 대상 리소스로 식별되는 서버에 대한 터널을 설정
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
HTTP 메서드의 속성

안전(Safe)
- 호출해도 리소스가 변경되지 않는 것
- 해당 리소스만 고려하며 그 외의 에러는 고려하지 않는다.
멱등(Idempotent)
- 호출의 횟수와 상관없이 결과가 같은 것
- 제대로 요청이 되었나 확인을 위해 한 번 더 메서드를 요청할 때 멱등한 것만 가능하다.
캐시가능(Cacheable)
- 응답 결과 리소스를 캐시해서 사용할 수 있는 것
- 실제로는 GET, HEAD 정도만 캐시로 사용한다.
- POST, PATCH는 본문 내용까지 캐시 키로 고려해야 해서 구현이 쉽지 않다.
'computer science' 카테고리의 다른 글
[CS] HTTP 기본 (0) | 2024.04.16 |
---|---|
[CS] TCP & UDP (0) | 2024.04.15 |
[CS] CSR & SSR (0) | 2024.04.13 |