wasup
HTTP) HTTP 메서드, HTTP API, HTTP 메서드 - GET, POST, PUT, PATCH, DELETE, HTTP 메서드의 속성 본문
HTTP) HTTP 메서드, HTTP API, HTTP 메서드 - GET, POST, PUT, PATCH, DELETE, HTTP 메서드의 속성
wasupup 2021. 8. 13. 12:55HTTP 메서드
-HTTP API
-HTTP메서드
HTTP API
요구사항 | URI설계 | 더 좋은 URI설계 | 구분하는 방법 | |
회원 목록 조회 | /read-member-list | /members | ??????????????????? | |
회원 조회 | /read-member-by-id | /members/{id} | ||
회원 등록 | /create-member | /members/{id} | ||
회원 수정 | /update-member | /members/{id} | ||
회원 삭제 | /delete-member | /members/{id} |
* URI설계의 기준 - 리소스 식별 (리소스 - 사용될 수 있는 어떤 중심 항목)
* 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용을 권장한다.
* 리소스와 행위를 분리해야 한다
- 여기서 리소스는 회원, 행위는 동사이다.
- 행위를 구분하기 위해 HTTP메서드를 사용하게 된다.
HTTP 메서드 - GET, POST, PUT, PATCH, DELETE
: GET - 리소스 조회
: POST - 요청 데이터 처리, 주로 등록에 사용됨.
: PUT - 리소스 대체, 없다면 생성
: PATCH - 리소스 부분 변경
: DELETE - 리소스 삭제
: HEAD - GET과 동일하지만 메시지 부분 제외, 상태 줄과 헤더만 반환함
: OPTIONS - 대상 리소스에 대한 통신 옵션을 설명( 주로 CORS-Cross-Origin Resource Sharing에서 사용 )
: TRACE - 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트 수행
요구사항 | URI설계 | 더 좋은 URI설계 | 구분하는 방법 | |
회원 목록 조회 | /read-member-list | /members | GET | |
회원 조회 | /read-member-by-id | /members/{id} | GET | |
회원 등록 | /create-member | /members/{id} | POST | |
회원 수정 | /update-member | /members/{id} | PATCH, PUT, POST | |
회원 삭제 | /delete-member | /members/{id} | DELETE |
GET
: 리소스 조회
: GET /search?q=hello&he=ko HTTP/1.1 HOST:www.google.com
: 메시지 바디를 사용해서 전달 할 수 있지만 지원하는곳이 별로 없음.
POST
: 요청 데이터를 처리 - 메시지 바디를 통해 서버로 요청 데이터를 전달함.
: 서버는 요청 데이터를 처리 - 신규 리소스 등록에 많이 사용됨.
: 단순히 데이터를 생성, 변경하는것 이상으로 프로세스(상태)를 처리해야 하는 경우 사용됨.
PUT
: 덮어버린다는 뜻으로 리소스가 있으면 "완전히"대체 없으면 생성한다.
: 클라이언트가 리소스의 정확한 위치를 알고 URI지정해야한다. - post와의 차이점.
PATCH
: 리소스 부분 변경
: 지원하지 않는 서버도 있기때문에 그런 경우 POST를 쓰면 된다.
DELETE
: 리소스 제거
HTTP 메서드의 속성
Safe Methods - 안전
: 호출해도 리소스를 변경하지 않는 것 - GET, HEAD, OPTIONS, TRACE
Idempotent Method - 멱등
: 호출을 몇 번을 하든 결과가 똑같은 것 - GET, PUT, DELETE
: 자동 복구 메커니즘에 사용된다 - 서버가 타임아웃등으로 정상 응답을 할 수 없을 때
* 외부 요인으로 중간에 리소스가 변경되는 것은 고려하지 않음
Cacheable Methods - 캐시가능
: GET, HEAD, POST, PATCH가 캐시 가능하지만 실제로 GET, HEAD정도만 캐시로 사용한다.
-> POST, PATCH는 본문 내용까지 캐시 키로 고려해야하는데 구현이 쉽지 않기때문!
[출처]
강의 :
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
참고 링크 :
https://www.zerocho.com/category/HTTP/post/5b4c4e3efc5052001b4f519b
'IT etc' 카테고리의 다른 글
HTTP) 상태코드, 100번대, 200번대, 300번대, 400번대, 500번대 오류 (0) | 2021.08.15 |
---|---|
HTTP) HTTP 메서드의 활용, HTTP API설계, 컬렉션, 스토어, HTTP FORM (0) | 2021.08.14 |
형상관리 : Version Control Revision Control (0) | 2021.08.12 |
HTTP) HTTP 특징, HTTP 메시지 (0) | 2021.08.12 |
URI와 웹 브라우저 요청) URI(URL, URN), 웹 브라우저 (0) | 2021.08.11 |