[네트워크] HTTP 메서드 활용

Shelby Choi·2023년 8월 15일

CS

목록 보기
4/5

모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 | 섹션 5

📌 클라이언트에서 서버로 데이터 전송

  • 데이터 전달방식 2가지

    • 쿼리 파라미터를 통한 데이터 전송 (GET) ex) 검색어
    • 메시지 바디를 통한 데이터 전송 (POST, PUT, PATCH) ex) 회원가입, 주문, 리소스 변경 등
  • 4가지 상황

    • 정적 데이터 조회 ex) 서버에서 이미지나 정적텍스트를 그대로 내려줌

    • 동적 데이터 조회 ex) 쿼리 파라미터를 사용해 요청하면 정렬 필터해서 동적 결과 내려줌

    • HTML Form 을 통한 데이터 전송: GET, POST만 지원
      ex) input name=username으로 요청을 보내면 content-type: application/x-www-form-urlencoded, body: username=value로 메시지를 구성해서 전송. Form data를 전송하고 싶다면, form 태그의 enctype="multipart/form-data"로 설정한다.

      ⚠️ 주의: 여기서 form 태그를 method="get"으로 설정하면, usename=value가 쿼리 파라미터에 담긴 채 GET 요청을 하게 된다.

    • HTTP API를 통한 데이터 전송
      ex) 서버-서버 통신, 앱 클라이언트 통신, 웹 클라이언트(Ajax) 통신, JSON을 주로 사용

📌 HTTP API 설계 예시

HTTP API - 컬렉션

  • POST 기반 등록 ex) 회원 관리 시스템 - 회원 등록 /members -> POST
  • 서버가 새로 등록된 리소스 URI를 생성 ex) /members/100
  • 컬렉션이란?
    • 서버가 관리하는 리소스 디렉토리(/members)
    • 서버가 리소스의 URI를 생성하고 관리
  • 대부분 컬렉션을 사용함

HTTP API - 스토어

  • PUT(덮어씀) 기반 등록 ex) 파일 관리 시스템 - 파일 등록 /files/{filename} -> PUT
  • POST 기반 등록과의 차이: 클라이언트가 리소스 URI를 알고 있음 ex) /files/star.jpg
  • 스토어란?
    • 클라이언트가 관리하는 리소스 저장소(/files)
    • 클라이언트가 리소스의 URI를 알고 관리

HTML FORM 사용

  • HTML FORM은 GET, POST만 지원하기 때문에 제약이 존재
  • 컨트롤 URI를 사용해야함(/new, /edit, /delete)
  • HTTP 메서드로 해결하기 애매한 경우 사용
  • 실무에서는 의외로 많이 사용한다

참고하면 좋은 URI 설계 개념 - 문서, 컬렉션, 스토어, 컨트롤러(컨트롤 URI)를 구분하자
https://restfulapi.net/resource-naming

profile
React를 애정하는 FE 개발자

0개의 댓글