코딩성장스토리

HTTP 메서드 활용 본문

웹(HTTP)

HTTP 메서드 활용

까르르꿍꿍 2022. 1. 6. 15:14

영한선생님의 강의를 듣고 정리

 

HTTP 메서드

URL을 설계할 떄 가장 중요한것은 리소스다.

URI는 리소스만 식별

리소스는 명사 개념이다 예를 들어)회원 관리 API가 있을 떄 회원이 리소스이다.

그럼 조회,등록,삭제,변경 같은 동작들은 어떻게 구분할까?

그럴떄 HTTP 메소드가 필요하다.

 

HTTP 메서드 종류 주요 메서드

GET: 리소스 조회

  • 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달 ex)GET /search?q=hello&hl=ko HTTP/1.1
  • 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아서 권장하지 않음

POST: 요청 데이터 처리, 주로 등록에 사용 

  • 메시지 바디를 통해 서버로 요청 데이터 전달
  • 서버는 요청 데이터를 처리
  • 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
  • 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용
  • 이 리소스 URI에 POST 요청이 오면 요청 데이터를 어떻게 처리할지 리소스마다 따로 정해야 함 -> 정해진 것이 없음

PUT: 리소스를 대체, 해당 리소스가 없으면 생성 

  • 리소스를 대체 
  • 리소스가 있으면 대체
  • 리소스가 없으면 생성 
  • 쉽게 이야기해서 덮어버림 
  • 중요! 클라이언트가 리소스를 식별 
  • 클라이언트가 리소스 위치를 알고 URI 지정 • POST와 차이점ex)put:members/100 , post:members

주의 할점:

리소스를 완전히 대체한다.

요청 전
요청 후

PATCH: 리소스 부분 변경 

DELETE: 리소스 삭제

 

HTTP 메서드의 속성

안전

호출해도 리소스를 변경하지 않는다

 

멱등

한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다

활용

자동 복구 메커니즘 

서버가 TIMEOUT 등으로 정상 응답을 못주었을 때, 클라이언트가 같은 요청을 다시 해 도 되는가? 판단 근거

 

캐시가능

응답 결과 리소스를 캐시해서 사용해도 되는가? 

GET, HEAD, POST, PATCH 캐시가능

실제로는 GET, HEAD 정도만 캐시로 사용

POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 쉽지 않음

 

'웹(HTTP)' 카테고리의 다른 글

HTTP 헤더:일반 헤더  (0) 2022.01.13
HTTP 상태코드  (0) 2022.01.12
HTTP 기본  (0) 2022.01.05
URL  (0) 2022.01.03
인터넷 네트워크  (0) 2022.01.02