Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 스프링
- 스프링 핵심 기능
- kotlin
- 자바
- springdatajpa
- Thymeleaf
- 김영한
- Proxy
- Exception
- JPQL
- 인프런
- AOP
- Servlet
- Spring Boot
- db
- SpringBoot
- jpa
- transaction
- 그리디
- java
- Greedy
- spring
- QueryDSL
- pointcut
- JDBC
- http
- Android
- 백준
- 스프링 핵심 원리
Archives
- Today
- Total
개발자되기 프로젝트
HTTP 메서드 - GET, POST, PUT, PATCH, DELETE 본문
1. 주요 HTTP 메서드
- GET : 리소스 조회
- POST : 요청 데이터 처리, 주로 등록에 사용
- PUT : 보내는 리소스로 기존 리소스를 대체, 해당 리소스가 없으면 생성
- PATCH : 리소스 부분 변경
- DELETE : 리소스 삭제
2. 기타 메서드
- HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS : 대상 리소스에 대한 통신 가능옵션을 설명(CROS에서 사용)
- CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정..? 안씀
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행..? 안씀
3. GET
- 리소스 조회
- 리소스 가져와!
- 서버에 전달하고 싶은 데이터는 query(query parameter, query string)을 통해 전달
- message body를 사용해서 전달할 수 있지만, 지원하는 곳이 많지 않음 ㅋㅋㅋㅋㅋ 허용은됨.
4. POST
- 요청 데이터를 처리해줘
- 내가 데이터를 줄테니 이거가지고 처리 좀 해줘
- 메시지 바디를 통해 서버로 요청 데이터를 전달
- 서버는 요청 데이터를 받아서 처리함
- 들어온 데이터를 처리하는 모든 기능 수행 - 주로 신규 리소스 등록, 프로세스 처리에 사용
- 서버는 처리 후 신규 리소스 식별자 생성.
- 생성된 리소스의 Location 보내줌.
5. POST는 요청 데이터를 어떻게 처리함?
- POST 메서드는 대상 리소스가 리소스의 고유한 의미 체계에 따라 요청에 포함 된 표현을 처리하도록 요청합니다.
- 예시
- HTML 양식에 입력 된 필드와 같은 데이터 블록을 데이터 처리 프로세스에 제공
- 게시판 글쓰기, 댓글 달기 - 서버가 아직 실별하지 않는 새 리소스 생성
- 신규 주문 생성 - 기존 자원에 데이터 추가
- 리소스 URI에 POST요청이 오면 요청데이터를 어떻게 처리할지 리소스마다 정해야함.
6. POST 정리
- 새 리소스 등록
- 요청 데이터 처리
- 데이터 생성, 변경을 넘어서 프로세스를 처리
- POST 결과로 새로운 리소스가 생성되지 않을 수 있음 - 다른 메서드로 처리하기 애매한 경우
- JSON으로 조회 데이터 넘겨야 하는데, GET쓰기 어려운 경우?
- 애매하면 POST ㅋㅋㅋ - 최대한 리소스를 식별 하도록 URI를 설계해야 하지만.. 그렇지 못한 경우.
- 컨트롤 URI
- POST /orders/{orderId}/start-delivery
7. PUT
- 리소스를 대체
- 리소스가 있으면 대체
- 리소스가 없으면 생성
- 덮어쓰기
- !!!클라이언트가 리소스를 식별
- 클라이언트가 리소스 위치를 알고 URI 지정 --> 어디에 있는지 알아야 덮어쓰지
- POST와의 차이점 - PUT /members/100
- 핵심은 완전히 리소스를 대체한다!
- 만약 특정 필드를 빼고 보낸다?
- 빼먹은 필드 날라감 ㅋㅋㅋㅋㅋ
- 즉 post를 리소스를 수정하는게 아님
8. PATCH
- 리소스 부분 변경
- 요청으로 보낸 내용만 변경됨.
- PATCH가 지원이 안되는 경우...POST로 ㅋㅋㅋㅋ
9. DELETE
- 리소스 제거
'인프런 > [인프런]모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글
클라이언트에서 서버로 데이터 전송 (0) | 2021.08.02 |
---|---|
HTTP 메서드 속성 (0) | 2021.08.02 |
HTTP API를 만들어 볼까..? (0) | 2021.08.01 |
HTTP 메시지 (0) | 2021.08.01 |
비 연결성(Connectionless) (0) | 2021.08.01 |
Comments