저는 포스팅을 할 때, 개념적인 부분보다는 실제로 제가 node.js로 개발을 진행해보면서 실전에 적용이 어떻게 되는가를 집중적으로 포스팅할 예정입니다. 저도 제가 이해한 방식대로 설명하다보니, 오류가 많을 수 있습니다! 지적해주시면 감사합니다.
사전적 의미로는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 입니다.
저는 이것을 저만의 방식으로 풀어써 보겠습니다.
우선 우리 모두가 웹서핑을 하면 다양한 홈페이지들을 탐색합니다.
이 과정에서 가장 많은 일을 하는 친구는 browser입니다.
간단하게 웹서핑을 하는 과정을 나타내면,
저는 요약하는걸 좋아합니다. 간단히 말하면
"web 페이지를 그릴 데이터를 요청하는 방법"이라고 우선 이해를 해봅시다.
web페이지를 그릴때는 많은 데이터가 필요합니다.
대표적으로 html, css, javascript 파일을 불러옵니다.
이러한 파일들을 해석해서 그려주는 역할은 browser가 진행하며, 이러한 브라우저들은 실제로도 매우 무겁고 다양한 상호작용을 합니다. 이 과정에서 서버측에서 랜더링을 진행해주면 (Server Side Rendering) 클라이언트 측에서 랜더링이 일어나면 (Client Side Rendering) 으로 구분하게 됩니다.
(크롬, 익스플로러 등등)
그러면 이 과정에서 의문이 들 수도 있습니다.
client에서 http 프로토콜로 데이터를 요청만 하나? 우리가 로그인하고, 글을 새롭게 작성하는건 서버에 데이터를 전송하는 것 아닌가?
이걸 어떻게 구분하지?
HTTP의 단골주제중 하나입니다. 우리가 http 프로토콜을 통해 데이터를 받을 때 http header의 정보를 통하여, 원할하게 클라이언트와 서버가 서로 통신을 주고받습니다.
이러한 header에는 대표적으로 4가지 영역이 있는데, 이것을 확실히 짚고 넘어가보겠습니다.