-
240106 HTTP 메서드TIL 2024. 1. 6. 17:57


좌) 안 좋은 설계 예 우) 좋은 설계 예
리소스 식별이 중요하다
URI는 리소스 식별, 행위는 HTTP 메소드로 식별
리소스는 명사, 행위method는 동사HTTP 메서드
총 10개인데 주로 4~5개만 쓴다
GET
-리소스 조회
-서버에 전달할 데이터는 쿼리로 전달
-메세지바디에 내용을 넣을순 있지만 그걸 지원 안하는 서버로 왕왕 있다.
POST
-요청 데이터 처리, 주로 등록에 사용
-☆메세지 바디를 통해 서버로 요청 데이터 전달
주 사용처
-새 리소스 생성(가입, 글 등록, 댓글 등등)
-요청 데이터 처리 -> 새 리소스가 생성/변경 되지 않고 프로세스를 처리해야할때
-다른 메서드로 처리하기 애매할때 -> JSON 조회데이터를 넘겨야하나 GET 사용이 힘들때
그냥 POST는 메세지바디에 담아 보내는 모든걸 할 수 있다. 만능 메소드 짱
PUT
- 원 리소스를 대체, 원 리소스가 없으면 새로 생성 ->덮어쓰기
- 일부 변경이 불가능하다. 한 컬럼만 바꾸면 나머지 컬럼은 삭제됌
- 수정보단 갈아끼우기 느낌
- POST와 달리 정확한 위치{id}를 알고 있어야함
PATCH
-리소스 부분 변경.
-PUT의 신버젼
-안되는 서버도 간혹 있다. 그럴땐 POST를 사용!
DELETE
-리소스 삭제
HTTP 메서드의 속성
안전(Safe Methods)
호출해도 리소스를 변경하지 않는가?--> GET
+'리소스 안전'에 관한것만 한정함으로 쌓인 로그로 인한 오류는 제외
멱등(Idempotent Methods) 덮을 멱, 등급 급
여러 번 호출하더라도 같은 결과가 나오는가?-->GET, PUT, DELETE
POST는 멱등하지 않다 호출하는대로 데이터가 생겨나니깐
TIMEOUT 등으로 정상 응답을 받지 못했을때 다시 요청해도 되는지? 에 사용
+외부요인(PUT,PATCH)으로 리소스가 바뀐건 고려하지 않는다
캐시가능(Cacheable Methodsd)
응답 결과 리소스를 캐시해서 사용해도 되는가-> GET, HEAD, POST, PATCH
POST, PATCH는 본문 내용까지 캐시 키로 고려해 구현이 어려워서 주로 GET, HEAD로 사용
'TIL' 카테고리의 다른 글
240115 HTTP 상태코드 (0) 2024.01.15 240110 HTTP 메서드 활용 (0) 2024.01.10 240105 HTTP 기본 - 용청/응답 메세지 (1) 2024.01.05 240105 HTTP 기본 (0) 2024.01.05 240104 URI와 웹 브라우저 요청 흐름 (1) 2024.01.04