클라이언트가(브라우저가) 어떻게 웹 페이지를 여는가?
1. API호출해서 서버로부터 응답을 받는다. (웹페이지에 대한 응답)
-- Client Server architecture 라고 한다.
2. Google map 에 접속한다고 치자. 아래 URL은 아래를 의미한다.
-- https://www.google.com/maps
https = protocol
www.google.com = Domain name
maps = Resource
DNS 통해서 www.google.com 을 해석함 (DNS Lookup). 그 후 real ip를 알아낼 수 있음.
그 후에, Server와 Client의 TCP/IP Connection 을 맺는다.
-- TCP/IP가 하는일
--- 요청과 응답을 여러개의 작은 단위로 나눈다.
--- 이 단위들이 목적지에 도달했을 때 재조립한다.
--- IP 프로토콜은 이 단위들이 인터넷 프로토콜을 통해서 움직일 수 있도록 한다.
그 후 HTTP Request를 한다.
-- Start line = HTTP Method + request target + HTTP Version
-- HTTP Request headers (Host, User-Agent, Accept-Language
-- BODY = Request body (서버에 데이터 보낼때 있음 (Post 같은 메소드로)
서버로부터 HTTP Response가 온다.
-- Start line = HTTP Version , Status code, Status message
-- HTTP response headers (Date, Content-type, Transfer-Encoding.. )
-- BODY
이제 브라우저가 HTML, CSS, JS로 렌더링한다.
Static vs Dynamic Website
정적 웹사이트
-- 서버가 갖고 있는 데이터로, 클라가 요청한 대로 준다.
-- 백엔트 코드는 별로 안거치는..그냥 서빙만 한다
-- HTML, CSS, JS를 건네준다.
동적 웹사이트
-- 데이터베이스를 갖고 있다.
-- 데이터를 DB에서 가져와서, 웹사이트를 만들어준다. 그리고 서빙한다.
-- 서버 사이드 렌더링이라고도 한다.
-- DB에 있는 데이터에 따라서 웹사이트가 달라지기도 한다. (유튜브 개인화 대문느낌?)
-- 서버에서 조립 후 HTML, CSS, JS를 건네준다.
댓글
댓글 쓰기