ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Query Parameter와 Header
    카테고리 없음 2023. 2. 16. 13:37

    REST API(Representational State Transfer)는 API의 한 방식으로 간단히 말하자면 URL을 통해서 데이터를 주고 받는다고 할 수 있다.

    클라이언트에서 HTTP를 이용해 요청(request)을 보내면 서버에서 이에 따른 응답(response)을 보내주는 식으로 소통한다. 

    REST의 구체적인 개념
    HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
    즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
    웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
    CRUD Operation
    Create : 생성(POST)
    Read : 조회(GET)
    Update : 수정(PUT)
    Delete : 삭제(DELETE)
    HEAD: header 정보 조회(HEAD)

     

    REST API의 파라미터에는 4가지 타입이 있다.

    - header 파라미터: 리퀘스트 헤더에 포함된 파라미터. 보통 인증 혹은 권한 부여에 관련되어 있다.

    - path 파라미터: 엔드포인트에서 쿼리문 이전의 파라미터.

    - query string 파라미터: 쿼리문 내의 파라미터. 엔드포인트가 끝난 뒤 물음표 뒤에 온다.

    - request body 파라미터: 리퀘스트 바디에 포함된 파라미터. 보통 JSON 형식으로 제출된다.

     

    Query Parameter

    Query Parameter 은 경로 뒤에 입력 데이터를 함께 제공하는 식으로 사용한다.

    아래는 예시이다.

    /post?post_id=6
    

    이 때 ? 이후의 부분을 query string이라고 하며 뒤는 key, value의 쌍으로 이루어진다.

    아래와 같이 &로 연결하여 여러 개의 데이터를 넘길 수도 있다.

    /post?post_id=6&key1=value1

     

     

    Header

    Header는 부가적인 정보를 제공하기 위해서 사용된다. 인증과 권한부여 목적으로 사용한다. 인증과 관련된 서비스에서 헤더 파라메터에 대한 내용을 볼 수 있다.

    예를 들어 클라이언트에서 서버에 보내는 데이터가 JSON 형식이라는 것을 알려준다면

    "Content-Type: application/json"

    서버는 데이터를 파악할 필요없이 빠르게 데이터를 읽고 처리한 다음 클라이언트에 응답할 수 있다.

    위처럼 Header는 property와 value로 쌍을 이룬다.

     

    Query Parameter와 Header의 차이

    Query Parameter와 Header는 사용용도에 따라 다른것같다

    정렬이나 필터링을 해야하는 상황에서는 Query Parameter 가 더 적합하고 Header는 인증과 권한부여 목적으로 사용한다.

     

    [참고]

    https://thinkforthink.tistory.com/326

    https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

    https://ssungkang.tistory.com/entry/Web-Path-Variable-VS-Query-Parameter

Designed by Tistory.