ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP API와 HTTP Method
    CS 2023. 12. 4. 23:58

    HTTP는 무엇인가?

    https://hsch19.tistory.com/4

     

    HTTP 기초

    HTTP란 HyperText Transfer Protocol 클라이언트와 서버간의 컨텐츠(HTML/JavaScript/Css/이미지 등)를 주고 받기위해 서로 알아볼 수 있는 메세지라고 할 수 있다. HTML과 같은 Text파일뿐만 아니라 이미지 오디

    hsch19.tistory.com

    HTTP란 간단하게 웹상에서 클라이언트와 서버간의 컨텐츠(HTML/JavaScript/Css/이미지 등)를 주고 받기위해 서로 알아볼 수 있는 메세지라고 할 수 있다.

     

    API는 무엇인가?

    API(Application Programming Interface)의 약자로 프로그램 간 상호작용을 위한 인터페이스를 나타낸다.

    인터페이스 : 기기 또는 소프트웨어 간에 상호작용을 하기 위한 접점을 나타낸다.

    HTTP API란?

    즉, HTTP API는 HTTP(HyperTextTransferProtocol)를 통해 HTTP메서드를 사용해서 클라이언트와 서버간 데이터를 주고받는 인터페이스이다.

    흔히 보는 OPEN API, KAKAO API등이 대부분 HTTP통신규칙으로 소통하는 API이다.

     

    HTTP Method

    클라이언트와 서버간의 통신에서 어떤 동작을 수행해야하는 지정한다.

    각각의 메서드는 특정한 의미와 목적을 가진다.

     

    주요 메서드

    종류 설명
    GET 서버로부터 데이터를 조회한다.
    POST 서버에 데이터를 보낸다. 주로 등록을 처리한다.
    PUT 서버 데이터를 대체한다. 
    (데이터가 없는 경우, 등록한다)
    (데이터 부분 변경인 경우, 보내온 데이터가 부분을 변경하고 나머지 컬럼들은 NULL로 처리한다.)
    PATCH 서버 데이터를 부분 변경한다.
    (보내온 데이터 부분만 변경하고 나머지는 기존의 데이터를 남겨둔다.)
    DELETE 서버 데이터를 삭제한다.

     

    기타 메서드

    종류 설명
    HEAD GET과 유사하지만 메시지 부분을 제외하고, 상태줄과 헤더만 반환한다.
    주로 리소스의 메타데이터를 확인할 때 사용한다.
    OPTION 서버에서 지원되는 메서드를 확인하기 위해 사용된다.
    CONNECT 프록시 동작의 터널 접속을 변경한다.
    TRACE 서버로부터 클라이언트까지의 경로를 따라 메시지를 다시 받아오도록 하는 목적으로 사용된다.
    경로에 따라 메세지 루프백 테스트를 수행한다.

     

     

    GET

    리소스 조회 메서드

    서버에 전달하고 싶은 데이터는 쿼리스트링을 통해서 전달한다.

    --> GET/members?username=HONG&age=26

    조회할 때 POST도 사용할 수 있지만, GET메서드는 캐싱이 가능하기에 GET을 쓰는게 유리하다.

     

    POST

    전달한 데이터 처리/생성 메서드

    데이터를 메세지의 바디(BODY)에 넣어 서버로 요청

    전달된 데이터는 주로 새로운 리소스를 등록하거나 프로세스 처리에 사용한다. 

    데이터를 조회(GET)하는데, JSON으로 조회 데이터를 넘겨야하는 경우 POST사용

     

    PUT

    리소스를 대체(수정)하는 메서드

    만일 요청 메세지에 리소스가 있으면 덮어쓰고, 없으면 새로 생성한다.

    PUT/member/100  => 데이터가 존재하면 기존 것을 완전 대체

    PUT/member/100  => 데이터가 없으면 새로 생성

    * 대체 해야하기 때문에 리소스의 구체적인 전체 경로를 지정해야한다.

    * 리소스의 일부만 변경하기 위해 일부의 데이터만 보내면, 일부의 새로운 데이터는 변경되고 기존의 데이터는 삭제됨

     

    PATCH

    리소스의 일부 부분만 변경하는 메서드

    PATCH를 지원하지 않는 서버라면 POST를 사용한다.

     

    DELETE

    리소스를 제거하는 메서드

    상태코드는 대부분 200을 사용하고 상황에 따라 204를 사용한다.

     

    HTTP Method의 속성

    안전 Safe

    호출해도 소스를 변경하지 않는 특성이다.

    GET과 HEAD등의 조회역할을 하는 메서드는 안전하지만, 변경이 발생하는 DELETE, PUT 등의 메서드는 안전하지 않다.

     

    멱등성 Idempotent

    "멱등"이란 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미하는 수학용어라고 한다.

    즉, 동일한 요청을 여러 번 보내도 한번 보내는 것과 같다는 특성이다.

    올바르게 구현한 GET, PUT, DELETE 메서드는 멱등성을 지녀야한다.

    *POST의 경우, 두번 호출하면 같은 결제가 중복해서 발생하는 등의 결과가 다를 수 있다.

     

    캐시가능 Cacheable

    응답결과를 서버에 캐시해서 사용해도 되는 메서드

    GET, HEAD, POST, PATCH가 가능하지만 실무에서는 구현이 어렵기 때문에 GET, HEAD 정도만 캐시 하여 사용한다.

     

     


    참고자료

    https://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/

     

    https://junuuu.tistory.com/41

     

    https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-HTTP-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A2%85%EB%A5%98-%ED%86%B5%EC%8B%A0-%EA%B3%BC%EC%A0%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC

     

    https://girawhale.tistory.com/66#recentEntries

    'CS' 카테고리의 다른 글

    동시성 제어(Concurrency Control)  (0) 2024.03.26
    쿠키(Cookie)란 무엇인가? (+ Session 추가정리)  (0) 2023.12.18
    NoSQL이란 무엇인가?  (0) 2023.12.14
    REST API란 무엇인가?  (2) 2023.12.05
    HTTP 기초  (1) 2023.11.11
Designed by Tistory.