URI 설계할 때 어떤 점이 중요한가요?
리소스 식별입니다. 행위에 초점을 맞추는 것이 아닌 목적어가 리소스가 됩니다.
ex) 옷을 산다. - 여기서 리소스는 '옷'입니다.
리소스에 따라 URI를 설계했더니 URI 자체가 겹치는 경우가 있을 경우 어떻게 구분하나요?
HTTP method를 통해 구분합니다. 어떤 동작을 uri로 표현할지에 따라 method가 달라지는데
이를 통해 구분해주면 됩니다.
HTTP 메서드의 종류에는 어떤 것이 있나요?
Get, Post, Put, Patch, Delete, head 등이 있습니다.
Get method에 대해 설명해보세요
리소스를 조회할 때 사용하며 서버에 전달하고 싶은 데이터를 쿼리 스트링을 통해 전달합니다.
메시지 바디를 통해 데이터를 전달할 수 도 있지만 서버에서 지원하지 않는 경우가 더러 있습니다.
Post method에 대해 설명해보세요
요청한 데이터를 처리합니다. Get과 다르게 메시지 바디를 통해 서버로 요청 데이터를 전달합니다.
메시지 바디를 통해 들어온 데이터를 서버에서 처리합니다.
주로 등록, 처리 등에 사용합니다.
클라이언트에서 보낸 요청을 처리해주면 신규 URI(리소스 식별자)를 생성합니다. - 경우에 따라 생성x
그리고 애매하면 POST를 사용합니다.
Post, Put method의 차이점에 대해 설명하시오.
기존에 있던 정보를 밀어내고 대체합니다.
클라이언트가 리소스 위치를 알고 URI를 정한다.(Post와 차이점)
Patch method에 대해 설명하시오.
기존에 있던 정보의 일부분을 변경합니다.
Delete method에 대해 설명하시오.
기존에 있던 정보를 삭제합니다.
HTTP 메서드의 속성에 대해 설명하시오.
- 안전
호출해도 리소스를 변경하지 않는다. - GET
- 멱등
반복 호출해도 결과 값이 동일하다. - GET, PUT, DELETE
PATCH는 멱등에 해당이 되지 않는데 이 이유는 자원의 값을 +1 씩 늘린다거나 하는 동작은
반복 호출했을 때 결과 값이 변경되기 때문이다.
※ 재요청 중간에 다른 곳에서 리소스 변경?
멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지는 고려x
- 캐시 가능
응답 결과 리소스를 캐시화 해서 사용해도 될까?
Get, Post, Head, Patch 캐시가능
실제로는 Get, Head 정도만 캐시로 사용
김영한 강사님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의에서 참고했습니다
'CS 개념정리 > 네트워크' 카테고리의 다른 글
[네트워크 CS 준비] 6. HTTP STATUS (0) | 2023.01.13 |
---|---|
[네트워크 CS 준비] 5. HTTP method use (0) | 2023.01.13 |
[네트워크 CS 준비] 3.HTTP (0) | 2023.01.13 |
[네트워크 CS 준비] 2.URI와 웹 브라우저 요청 흐름 (0) | 2023.01.13 |
[네트워크 CS] 1. 인터넷 네트워크 (1) | 2023.01.12 |