Http 프로토콜

김준엽·2022년 9월 25일
0

개발공부

목록 보기
1/5

저는 포스팅을 할 때, 개념적인 부분보다는 실제로 제가 node.js로 개발을 진행해보면서 실전에 적용이 어떻게 되는가를 집중적으로 포스팅할 예정입니다. 저도 제가 이해한 방식대로 설명하다보니, 오류가 많을 수 있습니다! 지적해주시면 감사합니다.

HTTP Protocol

사전적 의미로는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 입니다.

저는 이것을 저만의 방식으로 풀어써 보겠습니다.
우선 우리 모두가 웹서핑을 하면 다양한 홈페이지들을 탐색합니다.
이 과정에서 가장 많은 일을 하는 친구는 browser입니다.
간단하게 웹서핑을 하는 과정을 나타내면,

  1. 우리가 naver를 들어가기 위해 naver 주소창을 친다.
  2. naver server에 http protocol을 통해 http 요청을 보냅니다.
  3. naver에서 http 요청으로 html과 같은 데이터를 우리의 컴퓨터에 답장해줍니다.
  4. browser는 http로 받은 데이터를 해석하고 우리 화면에 그려줍니다.
    이 과정은 많은 부분이 생략 되었으며, (TCP/IP, 라우팅, MAC 등등) 이후에 추가적으로 다루어 보겠습니다. :)

저는 요약하는걸 좋아합니다. 간단히 말하면
"web 페이지를 그릴 데이터를 요청하는 방법"이라고 우선 이해를 해봅시다.
web페이지를 그릴때는 많은 데이터가 필요합니다.
대표적으로 html, css, javascript 파일을 불러옵니다.
이러한 파일들을 해석해서 그려주는 역할은 browser가 진행하며, 이러한 브라우저들은 실제로도 매우 무겁고 다양한 상호작용을 합니다. 이 과정에서 서버측에서 랜더링을 진행해주면 (Server Side Rendering) 클라이언트 측에서 랜더링이 일어나면 (Client Side Rendering) 으로 구분하게 됩니다.
(크롬, 익스플로러 등등)

그러면 이 과정에서 의문이 들 수도 있습니다.
client에서 http 프로토콜로 데이터를 요청만 하나? 우리가 로그인하고, 글을 새롭게 작성하는건 서버에 데이터를 전송하는 것 아닌가?
이걸 어떻게 구분하지?

HTTP Header

HTTP의 단골주제중 하나입니다. 우리가 http 프로토콜을 통해 데이터를 받을 때 http header의 정보를 통하여, 원할하게 클라이언트와 서버가 서로 통신을 주고받습니다.
이러한 header에는 대표적으로 4가지 영역이 있는데, 이것을 확실히 짚고 넘어가보겠습니다.

  • General Header
    request, response 모두에 사용하지만 http의 body 즉 컨텐츠에는 적용이 되지 않는 부분입니다.
    • Date (날짜입니다.)
    • Connection (접속을 유지할지 말지를 제어)
    • Cache-Control (캐싱 허용 여부 결정)
  • Request Header
    request, response 모두에 사용하지만 http의 body 즉 컨텐츠에는 적용이 되지 않는 부분입니다.
    • Date (날짜입니다.)
    • Connection (접속을 유지할지 말지를 제어)
    • Cache-Control (캐싱 허용 여부 결정)
  • Response Header
    서버에서 반응한 정보를 가지는 header 즉 request로 요청한 정보를 응답해주는 프로토콜입니다.
  • Entity Header
    컨텐츠의 길이와 같은 전체적인 정보의 body에 대한 정보를 담고 있습니다.
profile
꾸준히 성장하는 개발자 지망생

0개의 댓글