HTTP 통신

김진겸·2023년 1월 15일

HTTP통신은 무엇이고 내가 왜 알아야 하고 어떻게 적용해야할까?
HTTP통신은 HyperTextTransferProtocol의 약자로 두컴퓨터간에 텍스트데이터를 주고 받는길이다.
HyperText는 HTML(HyperTextMarkupLanguge)을 말하고 <>를 마크업했다고 말한다.
HTTP통신으로 HTML을 보낼수 있다.

한컴퓨터가 요청을하면 요청을 받은 컴퓨터가 요청을 처리하고 요청한 컴퓨터에 응답을 보낸다.
이때, 요청은 request,응답은 response이다.각각 req,res라고 요약해서 많이사용한다.

HTTP요청(Request)
프론트엔드 서버에서 백엔드서버에 텍스트데이터를 HTTP를 통해서 백엔드서버에 요청을 보내고,
백엔드 서버에서 이 받은 데이터를 데이터베이스에 저장해달라고 요청한다.
이때 보내는 텍스트 데이터는 헤더와 바디로 나뉘는데 헤더는 누가 누구에게 보내는지가 담겨있고 바디에는 내용이 담겨있다.
HTTP요청(Response)
요청을 받은 서버가 성고과 실패등 처리결과를 응답한다. 이때 컴퓨터는 '성공','실패'를 이해하지 못한다. 컴퓨터는 그대신 HTTP상태코드라는것을 보내준다. HTTP상태코드에서 2로시작하는것들은 성공을, 3으로 시작하는것은 리다이렉션(요청완료를 위해 추가 조치가필요)을, 4로시작하는것은 클라이언트 에러를, 5로시작하는것은 서버에러를 의미한다.

의문점
텍스트 데이터를 보내는 길인데 객체를 어떻게 보내지?
=> JSON(자바스크립트 객체 표기방법)을 이용한다.
백엔드 서버를 거치지않고 바로 데이터 베이스에 요청하면 안되나?
=>보안상의 이유로 데이터베이스에 접근하기전에 백엔드에서 검증과정을 거쳐야 한다. 그렇기에 직접적으로 데이터베이스에 접근할 수 없다.
*HTTP상태코드에대서 더 알고 싶어
=>다양한 HTTP 상태 코드(MDN): https://developer.mozilla.org/ko/docs/Web/HTTP/Status

+)보완
HTTP 헤더와 바디
HTTP를 통해 정보를 전송할때 헤더와 바디로 나뉜다고 했다. 그럼 헤데와 바디에는 어떠한 것들이 담겨져 있를까?
HTTP요청메세지에 무엇이 담기는지 알아보고 HTTP응답메세자에 무엇이 담기는지 알아보자.
먼저 HTTP에서 텍스트 데이터로 요청과응답을 보낸다고 했다. 그 텍스트 데이터의 형식을 먼저 알아보자.
Start-line,HTTPheaders->emptyline->body로 편지의 형식이 정해져 있다.
HTTP요청메세지
start-line에는 HTTP메서드(get,poste등),요청엔드포인트("/custom"), HTTP 버전이 담긴다.
이중 HTTP버전은 추후 공부후 더 설명 하겠다.
HTTPheaders에는 요청을 보내는 브라우저의 주소(host),응답하는 메시지의 내용이 어떤 종류인지 알여주는(content-type)이있다.
그리고 body에는 실제전송하려는 데이터가 담겨있다.
HTTP응답메세지
start-line에는 HTTP버전,HTTP상태코드(2~,3~,4~,5~등이 있다.)
HTTPheaders에는 응답하는 메세지의 내용이 어떤 종류인지 담겨있다.
body는 실제전송하려는 데이터가 담겨있다.

profile
성장에 목마른 개발자입니다!

0개의 댓글