[Network] HTTP 메서드 활용

abi hong·2023년 8월 18일

AWS

목록 보기
10/11

강의 모든 개발자를 위한 HTTP 웹 기본 지식을 듣고 정리한 내용입니다.

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

데이터 전달 방식

  • 쿼리 파라미터를 통한 데이터 전송 (GET)
  • 메세지 바디를 통한 데이터 전송 (POST, PUT, PATCH)

정적 데이터 조회

이미지, 정적 텍스트 문서

동적 데이터 조회

주로 검색, 게시판 목록에서 정렬 필터(검색어)
쿼리 파라미터를 기반으로 정렬 필터해서 결과를 동적으로 생성

HTML Form을 통한 데이터 전송

회원가입, 상품주문, 데이터 변경

  • Content-Type : application/x-www-form-urlencoded
    form의 내용을 메시지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)

  • Content-Type : multipart/form-data
    파일 업로드 같은 바이너리 데이터 전송시 사용
    전송 데이터를 url encoding 처리
    ex) abc김 -> abc%EA%B9%80

HTTP API를 통한 데이터 전송

회원가입, 상품주문, 데이터 변경

  • 서버 to 서버 : 백엔드 시스템 통신
  • 앱 클라이언트 : 아이폰, 안드로이드
  • 웹 클라이언트 : Ajax

Content-Type은 application/json을 주로 사용한다.

HTTP API 설계 예시

HTTP API - 컬렉션

  • POST 기반 등록 (ex. 회원 관리 API 제공)
    클라이언트는 등록될 리소스의 URI를 모른다. 서버가 새로 등록된 리소스 URI를 생성해준다.

컬렌션 (Collection)

서버가 관리하는 리소스 디렉토리로 서버가 리소스의 URI를 생성하고 관리한다.
예시에서 컬렉션은 /members 이다.

HTTP API - 스토어

  • PUT 기반 등록 (ex. 정적 컨텐츠 관리, 원격 파일 관리, 신규 자원 등록)
    클라이언트가 리소스 URI를 알고 있어야 한다. ex. PUT /files/star.jpg
    클라이언트가 직접 리소스의 URI를 지정한다.

스토어 (Store)

클라이언트가 관리하는 리소스 저장소로 클라이언트가 리소스의 URI를 알고 관리한다.
예시에서 스토어는 /files 이다.

HTML FORM 사용

  • 웹 페이지 회원 관리 (GET, POST만 지원)
    순수 HTML, HTML FORM을 생각해보면 GET, POST만 지원하기 때문에 제약이 있다.

컨트롤 URI

이런 제약을 해결하기 위해 동사로 된 리소스 경로를 사용한다.
POST의 /new, /edit, /delete가 컨트롤 URI이다.
HTTP API를 포함해서 HTTP 메서드로 해결하기 애매한 경우 사용한다.

0개의 댓글