[Network] HTTP 메서드 활용

공부하는 감자·2024년 1월 16일
0

Network

목록 보기
5/12

데이터 전송 방식

데이터 전달

클라이언트에서 서버로 데이터를 전달하는 방식은 크게 2가지가 있다.

  • 쿼리 파라미터를 통한 데이터 전송
    • GET
    • 주로 정렬 필터(검색어)
  • 메시지 바디를 통한 데이터 전송
    • POST, PUT, PATCH

HTTP API 설계

정적 데이터 조회 시

  • 사용 메서드: GET
  • 정적 데이터란 이미지나 정적 텍스트 문서 등을 말한다.
  • 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회가 가능하다.

동적 데이터 조회 시

  • 사용 메서드: GET
  • 쿼리 파라미터를 사용해 데이터를 전달한다.
  • 주로 검색 혹은 게시판 목록에서 정렬 필터(검색어)
  • 필터나 정렬에 주로 사용한다.

HTML Form 데이터 전송 시

  • 사용 메서드: GET, POST
    • HTML Form은 GET과 POST만 지원한다.
    • GET은 조회에만 사용해야 한다.
  • Content-Type: application/x-www-form-urlencoded를 사용한다.
    • form의 내용을 메시지 바디를 통해서 전송한다.
    • 전송 데이터는 key=value 형식이다.
    • 전송 데이터는 url encoding 처리 된다. (한글을 유니코드로)
  • Content-Type: multipart/form-data
    • 파일 업로드 같은 바이너리 데이터를 전송 시 사용한다.
    • 다른 종류의 여러 파일과 Form의 내용을 함께 전송할 수 있다.

HTTP API 데이터 전송 시

  • 사용 메서드: GET, POST, PUT, PATCH
    • GET은 조회 시 사용한다.
    • GET을 제외한 나머지는 메시지 바디를 통해 데이터를 전송한다.
  • 사용 대상
    • 서버 to 서버
    • 앱 클라이언트
    • 웹 클라이언트: HTML From 대신 자바 스크림트를 통한 통신(Ajax)
  • Content-Type: application/json
    • TEXT, XML, JSON 등
    • 사실상 표준

컬렉션과 스토어

컬렉션(Collection)

  • POST 메서드일 경우 해당된다.
  • 서버가 관리하는 리소스 디렉토리를 말한다.

서버가 리소스 URI를 생성하고 관리할 경우, URI의 리소스를 컬렉션이라고 부른다.

이때, 클라이언트에서는 리소스를 모른다.

// 회원등록
// 컬렉션: /members
POST /members

스토어(Store)

  • PUT 메서드일 경우 해당된다.
  • 클라이언트가 관리하는 리소스 저장소

클라이언트가 리소스의 URI를 알고 관리한다.

즉, 클라이언트가 요청할 때 URI에 리소스를 특정할 수 있을 때를 말한다.

// 파일등록: 있으면 대체, 없으면 생성
// 스토어: /files
PUT /files/cat.jpg

컨트롤 URI

  • 컨트롤러(Controller)라고 부르기도 한다.
  • 동사를 직접 사용한다.
  • 컨트롤 URI 예시: /members/{id}/delete

HTML Form에서는 GET과 POST만 지원하기 때문에 URI에 제약이 있을 수밖에 없다.

이러한 제약을 해결하기 위해 동사로 된 리소스 경로를 사용하도록 허용하는데, 이러한 URI를 컨트롤 URI라고 말한다.

HTTP API에서도 HTTP 메서드로 해결하기 애매한 경우에 사용한다.

Reference

인프런 강의

모든 개발자를 위한 HTTP 웹 기본 지식 강의 - 인프런

profile
책을 읽거나 강의를 들으며 공부한 내용을 정리합니다. 가끔 개발하는데 있었던 이슈도 올립니다.

0개의 댓글