클라이언트-서버 통신과 HTTP API

MihyunCho·2021년 4월 28일
0
post-thumbnail

클라이언트와 서버 간의 통신을 알아보려면, 먼저 프로토콜이라는 개념을 이해해야 한다.
프로토콜은 통신 규약, 즉 약속이다.
통신을 하기 위해서는 꼭 지켜야 하는 약속이 몇가지 존재한다.

웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해서 서로 대화를 나누며, HTTP를 이용해 주고받는 메시지는 "HTTP 메시지"라고 부른다.

HTTP 메시지

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다.
메시지 타입은 두 가지가 있는데
1. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지이며,
2.응답(response)은 요청에 대한 서버의 답변이다.

HTTP 요청과 응답의 구조

  1. 시작 줄(start-line)에는 실행되어야 할 요청, 또은 요청 수행에 대한 성공 또는 실패가 기록되어 있음. 이 줄은 항상 한 줄로 끝남.
  2. 옵션으로 HTTP 헤더 세트가 들어감. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어감.
  3. 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(blank line)이 삽입됨.
  4. 요청과 관련된 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어감. 본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시됨.

HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head)라고 부르며, 이와 반대로 HTTP 메시지의 페이로드는 본문(body)이라고 한다.


API는 Application Programming Interface의 약자이며, Interface의 사전적 의미는 "의사소통이 가능" 하도록 만들어진 "접점"을 의미한다.
서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공하는데, 이것이 API이다.

보통 인터넷에 있는 데이터를 요청할 때에는 HTTP라는 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근할 수 있다.

파라미터를 사용하기 위해 물음표(?)와 & 기호를 사용하며, 영문 위키피디아의 Query String 문서를 참고하자.


HTTP 요청에는 메소드라는 것이 존재한다.


CRUD 각각의 행동과 일치하는 HTTP 메소드의 종류가 존재한다.
GET, POST, PUT, PATCH, DELETE

  • GET : GET 메서드는 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
  • POST : POST 메서드는 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킵니다.
  • PUT : PUT 메서드는 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다.
  • PATCH : PATCH 메서드는 리소스의 부분만을 수정하는 데 쓰입니다.
  • DELETE : DELETE 메서드는 특정 리소스를 삭제합니다.

참조 : MDN


HTTP의 무상태성(stateless)

HTTP는 특정 상태를 담고 있지 않으며, 이전 요청이나 다음 요청을 기억하지 않음

참조 : MDN

profile
Sic Parvis Magna 🧩

0개의 댓글