[HTTP 웹 기본 지식] HTTP 메서드

둡둡·2022년 10월 12일
0

HTTP

목록 보기
5/9

HTTP 메서드

  • HTTP API
  • HTTP 메서드
    • GET: 리소스 조회
    • POST: 요청 데이터 처리, 주로 등록
    • PUT: 리소스 대체, 없으면 생성
    • PATCH: 리소스 부분 변경/수정
    • DELETE: 리소스 삭제
    • 기타 메서드: HEAD, OPTIONS, CONNECT, TRACE
  • HTTP 메서드 속성

HTTP API

  • API URI 설계
    • 중요한 것은 리소스 식별 (EX) 회원 등록/수정/조회 -> '회원'이 리소스
    • 리소스(명사)와 행위(동사)를 분리 (EX) /members/join

GET

  • 리소스 조회
  • 전달하는 데이터는 쿼리 파라미터(쿼리 스트링)를 통해 전달
    (EX) /search?q=hello&hl=kr

POST

  • 요청 데이터 처리, 주로 신규 리소스 등록이나 프로세스 처리에 사용
    • 새로운 리소스 생성 (EX) 회원가입
    • 요청 데이터 처리 (EX) 주문완료-> 배송시작으로 상태 변경
    • 다른 메서드로 처리하기 어려운 경우 등
  • 메시지 바디에 요청 데이터를 저장하여 서버로 전달
  • POST 요청 데이터를 어떻게 처리할 지 리소스마다 설정 필요함

PUT

  • 리소스가 있으면 대체, 없으면 생성 (= 전체 덮어쓰기)
  • 클라이언트가 리소스 위치를 알고 URI 지정함 <-> POST는 신규 생성

PATCH

  • 리소스 부분 변경/수정

HTTP 메서드 속성

  • 안전(Safe Methods)

    • 호출해도 리소스가 변경되지 않음
  • 멱등(Idempotent Methods)

    • 몇 번을 호출해도 항상 결과는 동일
      (GET, PUT, DELETE는 멱등 / POST는 멱등이 아님 -> 여러 번 호출하면 새로운 리소스가 중복으로 발생함)
    • 자동 복구 메커니즘 등에서 사용(같은 요청을 다시 해도 되는가로 판단함)
  • 캐시 가능(Cacheable MEthods)

    • 응답 결과 데이터 리소스를 임시로 저장하고 사용함
    • 실제로는 GET, HEAD 정도에서만 사용

[출처] 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한, 인프런

profile
괴발개발라이프

0개의 댓글