Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

HTTP 메서드 - GET, POST, PUT, PATCH, DELETE 본문

인프런/[인프런]모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드 - GET, POST, PUT, PATCH, DELETE

Seung__ 2021. 8. 1. 22:13

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


  • 리소스 제거

 

Comments