HTTP 메서드 활용

루밤·2021년 7월 24일
0

HTTP

목록 보기
5/8
post-thumbnail
  1. 클라이언트에서 서버로 데이터 전송
  2. HTTP API 설계

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

  • 데이터 전달방식에는 쿼리(GET)를 통해 전달하는 방식과 바디(POST, PUT, PATCH)에 데이터를 담아서 전달하는 방식이 있다.

4가지 데이터 전송 상황

  1. 정적 데이터 조회
    GET을 사용하며 단순 경로로 조회가능하기 때문에 쿼리 파라미터 미사용
    이미지, 정적 텍스트 문서를 조회할 때 사용한다.

  1. 동적 데이터 조회
    GET을 사용하고 쿼리 파라미터를 사용해서 데이터를 서버로 전달한다.
    검색어 필터, 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용한다.

  1. HTML Form을 통한 데이터 전송
    Form 설정에서 메소드를 GET 또는 POST로 지정할 수 있고(GET과 POST만 지원), 웹브라우저가 자동으로 HTML Form의 데이터를 읽어서 HTTP 메시지 생성해준다.
    POST의 경우에는 바디에 Key=Value 형식 (쿼리 파라미터와 동일한 형식)으로 데이터를 넣어서 전송하고 메소드 설정이 GET 방식으로 되어있다면 쿼리 파라미터 방식으로 URI에 쿼리를 포함하여 데이터를 전송한다.

    디폴트로 Content-Type: application/x-www-form-urlencoded가 설정되며
    enctype을 multipart/form-data로 지정 시, 웹브라우저가 자동으로 boundary를 생성하여 한번에 여러 종류 타입의 데이터를 전송할 수 있다. 파일 업로드 같은 바이너리 데이터 전송시 사용한다.


  1. HTTP API를 통한 데이터 전송
    안드로이드나 아이폰 어플리케이션에서의 데이터 교환과 같이 클라이언트에서 서버로 데이터를 바로 전송할 때 사용한다.
    HTTP의 바디에 json, text, xml 등의 형식으로 데이터를 직접 넣어서 전송한다.
    Content-Type: application/json을 주로 사용한다.

    서버 to 서버, 앱 클라이언트 등 대부분의 경우에서 사용한다.
    웹 클라이언트에서도 form 전송 대신 자바 스크립트를 통한 통신(AJAX)에서 사용된다.

    이 전송방식은 POST, PUT, PATCH, GET 메소드 전부 사용 가능하고, GET 사용시는 쿼리 파라미터로 데이터 전달하는 것을 권장한다.



HTTP API 설계

  1. HTTP API - 컬렉션 (POST 기반 등록)
    클라이언트는 등록될 리소스의 URI를 모른다.
    서버가 새로 등록될 리소스에 대한 URI를 만들어준다.
    ex) POST /members

    컬렉션
    - 서버가 관리하는 리소스 디렉토리    ex) /members
    - 서버가 리소소의 URI를 생성하고 관리

  1. HTTP API - 스토어 (PUT 기반 등록)
    클라이언트가 리소스 URI를 알고 있어야한다.
    ex) PUT /files/star.jpg

    스토어
    - 클라이언트가 관리하는 리소스 저장소    ex) /files
    - 클라이언트가 리소소의 URI를 알고 관리

  2. HTML FORM 사용 시
    순수 HTML, HTML Form은 GET, POST만 지원하기 때문에 제약이 있고, 동사로 된 컨트롤 URI를 사용해야함 ex) /new, /edit, /delete
    추가로 HTTP 메서드로 해결하기 애매한 경우에도 컨트롤 URI를 사용한다. (HTTP API 포함)



해당 포스팅은 김영한님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식"를 수강하고 배운 내용을 정리한 글입니다.

0개의 댓글