Chapter 4 HTTP 메서드
이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다.
1. HTTP API 설계
- API URI는 리소스에 의미(식별)를 부여해야 한다.
- 리소스 : 회원이라는 개념 자체
- URI 계층 구조를 활용해야 한다.
- 리소스와 행위를 분리해야 한다.
- 행위 : 조회, 등록, 삭제, 변경 등 → HTTP 메서드로 구별
2. HTTP 메서드
GET
: 리소스 조회POST
: 요청 데이터 처리, 주로 등록에 사용PUT
: 리소스를 대체, 해당 리소스가 없으면 생성PATCH
: 리소스 부분 변경DELETE
: 리소스 삭제HEAD
:GET
과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환OPTIONS
CONNECT
TRACE
2.1 GET
- 리소스 조회할 때 사용
- 서버에 전달하고 싶은 데이터를 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
- 메시지 바디를 사용해서 데이터 전달 가능 → 지원하지 않는 경우가 많아서 지양
2.2 POST
- 새 리소스 생성(등록)할 때 사용
- 메시지 바디를 통해 서버로 요청 데이터 전달(처리)
- 서버는 요청 데이터를 처리함. → 정해진것은 없음(거의 모든것을 함)
- 전달된 데이터는 주로 신규 리소스 등록, 프로세스 처리에 사용
- 그 외 다른 메서드로 처리하기 애매한 경우에도 사용
2.3 PUT
- 리소스를 대체 할 때 사용 → 즉, 덮어쓰기(필드의 개수를 적게 입력하면 서버에 있는 필드가 줄어 듦)
- 리소스가 없으면 생성
- 클라이언트가 리소스를 식별
- 클라이언트가 리소스의 위치를 알고 URI를 지정한다.
2.4 PATCH
- 리소스를 부분 변경할 때 사용
- 필드의 개수를 적게 입력하면 부분 변경이 되고, 나머지 필드들은 변경되지 않음
2.5 DELETE
- 리소스를 제거할 때 사용
3. HTTP 메서드의 속성
- 안전(Safe Methods)
- 호출해도 리소스를 변경하지 않음(리소스만 고려)
GET
,HEAD
- 멱등(Idempotent Methods)
- 한 번 호출하든 더 많이 호출하든 결과가 똑같다. → 외부요인 영향 무시
- 자동 복구 메커니즘에 사용
GET
,PUT
,DELETE
- 캐시가능(Cacheable Methods)
- 응답 결과 리소스를 캐시해서 사용할 수 있음
GET
,HEAD
,POST
,PATCH
가 캐시 가능 이지만 실제로는GET
과HEAD
만 된다.POST
,PATCH
는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 어렵다.
'CS > [NETWORK]' 카테고리의 다른 글
Chapter 6 HTTP 상태 코드 (0) | 2021.11.18 |
---|---|
Chapter 5 HTTP 메서드 활용 (0) | 2021.11.16 |
Chapter 3 HTTP 기본 (0) | 2021.11.09 |
Chapter 2 URI와 웹 브라우저 요청 흐름 (0) | 2021.11.05 |
Chapter 1 인터넷 네트워크 (0) | 2021.11.02 |