맨 땅에 프론트엔드 개발자 되기

HTTP와 REST API 본문

코딩 공부 일지/Browser & Network

HTTP와 REST API

헬로코딩 2022. 7. 9. 16:59
728x90

HTTP 프로토콜

HTTP(Hypertext Transfer Protocol)는 인터넷을 이용해서 데이터를 주고받는 통신 규약이다.

데이터를 주고받기 때문에 request-response Protocol 이기도 하다. HTTP는 모든 웹 개발자라면 당연히 알고 있어야할 필수 상식이지만, 많은 프론트엔드 개발자들이 놓치기 쉬운 부분이기도 하다.

클라이언트는 URL을 통해 서버에 데이터 요청을 하고 서버는 그 응답으로 데이터를 클라이언트에게 보내준다. 그 데이터를 받아 예쁘게 보여주는 역할을 하는 것이 바로 웹 브라우저다. HTTP는 1989년부터 개발이 시작되었고, 1994년에 HTTPS라는 보안이 더해진 버전이 출시가 되었다. 그리고 정식버전으로 출시가 된 것은 1997년이다. 따지고 보면 인터넷 통신의 역사가 그리 길지 않다.

인터넷 주소창에 맨 왼쪽에 자물쇠 모양이 있는 경우, HTTPS 프로토콜을 이용하여 통신을 하고 있는 것이다. HTTPS 프로토콜을 이용해서 통신을 할 경우 데이터가 암호화되어 있기 때문에 해킹의 위험이 덜 하다.

요청(Request)과 REST API

HTTP 프로토콜을 이용해서 서버에 요청(Request)를 보낼 때, REST API를 이용하여 요청을 보내게 된다. REST API에 대해서 많이들 얘기하지만, 다들 너무 어렵게 설명해서 이해가 잘 되지 않았는데, 결국 내가 이해한 개념은 인터넷을 이용해서 서버에서 내가 원하는 정보를 받고 싶다고 요청하는 한 방식이다. '어떤 정보를 어떻게 받기를 원하는데?' 에 관해 사람의 언어로 아무렇게나 말할 수 없으니 정해진 약속을 두고 그 방법대로 말하는 것이다. 

- REST API의 작동 과정

  1. 클라이언트가 API 문서에 따라 서버가 이해하는 방식으로 요청 형식으로 전송한다.
  2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인한다.
  3. 서버가 요청을 수신하고 내부적으로 처리한다.
  4. 서버가 클라이언트에 응답을 반환한다. 응답에는 요청이 성공했는지 여부를 클라이언트에 알려주는 정보(200, 400 등과 같은 코드)가 포함된다. 응답에는 클라이언트가 요청한 모든 정보도 포함된다.

- REST API로 요청을 하기 위해 포함해야할 것

  1. 리소스 식별자: 리소스를 가진 대상의 식별자 즉, 어떤 서버에 요청을 할 것인지를 말하는데, REST API에서는 URL을 통해 리소스 식별자를 전달한다. 
  2. 메서드: 어떤 요청을 할 것인지에 관한 것이다. 받을 것인지(GET), 보낼 것인지(POST), 기존 서버에 있는 데이터를 수정할 것인지(PUT), 삭제할 것인지(DELETE) 등이 있다.
  3. HTTP 헤더: 요청 헤더는 클라이언트와 서버 간에 주고 받는 메타 데이터가 포함되는 곳으로, URL의 세부 경로를 지정하거나 추가적인 query를 전달하거나 인증 토큰을 담아 전달하는 곳이다. 

응답(Response)과 REST API

REST API를 이용한 통신에서 응답에는 다음과 같은 것들을 포함한다.

- REST API로 받은 응답에 포함해야할 것

  1. 상태표시줄: 요청이 성공했는지 실패했는지를 알려주는 세자리의 코드를 담고 있다. 대표적으로 200은 성공, 201은 POST 요청 성공, 400은 서버가 처리할 수 없는 잘못된 요청, 404는 리소스를 찾을 수 없다는 뜻이다.
  2. 메시지 본문: 서버에 요청해서 받은 데이터가 담겨있다. 대표적으로 JSON 형식의 데이터를 받을 수 있다.
  3. 헤더: 응답에 대한 메타 데이터, 예를 들어, 인코딩, 날짜 및 콘텐츠 유형과 같은 정보를 포함한다.
728x90