• [JS] HTTP와 REST API

    2023. 3. 24.

    by. 지은이: 김지은

    728x90

     

    1. HTTP (Hyper Text Transfer Protocol)

    HTTP는 데이터를 주고받는 데 사용되는 프로토콜로 HTML 문서와 같은 리소스(문서, 이미지 등)들을 전송하기 위한 규약으로 사용된다.

    클라이언트(웹 브라우저)가 서버에 요청(request)을 보내면 서버는 그 요청에 응답(response)을 보내준다.

     

    그럼 클라이언트의 요청과 서버 응답은 어떻게 보낼 수 있을까?

     

    2. HTTP Message

    HTTP 메시지는 웹에서 데이터를 주고받는데 사용되며 이 메시지 형식은 사람이 읽을 수 있도록 설계되어있다.

    이 메시지는 요청과 응답 두가지 형태가 각각 다른 구조를 가지고 있으며, 서버 주소, 요청 메서드, 상태 코드, target path, 헤더 정보, body 정보 등이 포함되어있다.

     

    다 중요하지만, 우린 그중에서도 헤더 정보, 상태 코드, 요청 메서드에 대해서 알아보려고 한다.

     

    3. 헤더 정보

    HTTP 메시지의 헤더에는 다양한 메타데이터를 포함한다.

    • 콘텐츠 관련 정보: 클라이언트가 요청한 데이터 유형, 길이, 인코딩 정보
    • 인증 관련 정보: 신원을 인증하기 위한 토큰과 같은 정보
    • 쿠키 정보: 서버는 클라이언트의 세션 상태를 유지하거나 사용자에 대한 추가 정보 추적
    • 캐시 관련 정보: 클라이언트와 서버 간 캐시 동작 제어

    클라이언트는 요청을 보낼 때 적절한 헤더를 포함하여 요청을 서버에 전달하고

    클라이언트가 요청하거나, 서버 응답 시 헤더에 적절한 정보를 포함하여 정보를 제공할 수 있다.

     

    4. 상태 코드

    상태 코드는 HTTP 요청의 결과를 나타낸 정보를 얻을 수 있다.

    가장 많이 볼 수 있는 코드 중 200 상태 코드는 'OK' 라는 텍스트와 함께 요청이 성공했음을, 

    404 코드는 'NOT FOUND' 라는 텍스트와 함께 요청한 리소스를 찾을 수 없음을,

    그리고 500은 서버 측 오류가 발생했다는 걸 나타내며 이 HTTP 상태코드로 적절한 조치를 취할 수 있도록 도와준다.

     

    5.  요청 메서드

    클라이언트가 서버로부터 특정 동작을 요청할 때 사용하는 명령어

    1) 직접 커스텀해서 사용하는 메서드

    • GET: 서버로부터 정보를 요청. 오직 데이터를 받기만 함
    • POST: 새로운 데이터를 제출하여 리소스 생성, 데이터 전송
    • PUT: 리소스 생성하거나 업데이트
    • PATCH: PUT과 비슷하지만, 리소스의 일부를 수정
    • DELETE: 리소스 제거

     

    2) 브라우저에서 자동으로 처리되는 메서드

    • OPTIONS: 서버가 어떤 요청 메서드를 지원하는지 확인
    • CONNECT: 보안된 연결 설정, 프록시 서버와 직접 통신할 때 사용
    • TRACE: 클라이언트가 서버까지 요청이 도달하는 방법을 확인

     

    6. REST API

    간단히 말해서 클라이언트와 서버 사이의 약속된 규칙이라고 생각하면 된다.

    여기서 API(Application Programming Interface)란 사용자가 어떤 기능을 사용할 수 있도록 제공하는 함수나 인터페이스 즉, 프로그램과 프로그램을 연결해주는 다리 역할을 말한다.

    REST API는 HTTP의 요청 메서드(GET, POST, PUT, DELETE)에 응하는 서버 API와 클라이언트 간 통신 구조를 명시한 것

    이를 통해 서버는 어떤 요청을 받았는지 이해하고, 클라이언트는 어떤 요청을 보내야하는지 알 수 있으며 서로가 이해하기 쉽고 효율적으로 통신할 수 있다.

     

    다음엔 자바스크립트에서 HTTP 요청을 해보려고 한다.

    댓글