본문 바로가기
내일배움캠프 스프링3기

2024-01-10 TIL

by 김공돌 2024. 1. 10.

7. 브라우저의 작동방식에 대해서 설명해주세요.

URL 해석 및 DNS 조회:
사용자가 주소 표시줄에 URL을 입력하면, 브라우저는 해당 URL을 해석하고 호스트명을 추출함.
호스트명을 기반으로 DNS(Domain Name System) 서버에 호스트명에 대한 IP 주소를 조회함.

서버와의 TCP 연결:
브라우저는 얻어진 IP 주소를 사용하여 웹 서버에 TCP/IP 연결을 시도함.

HTTP 요청:
브라우저는 서버에 HTTP 요청을 보냄
이 요청에는 사용자가 요청한 자원(HTML 문서, 이미지, 스크립트 등)과 추가 정보(쿠키, 사용자 에이전트 정보 등)가 포함됨.

서버 응답:
서버는 브라우저의 요청을 받고, 해당하는 자원을 포함한 HTTP 응답을 생성함.
응답에는 상태 코드(성공, 리다이렉션, 오류 등)와 자원의 내용이 포함됨.

HTML 파싱 및 렌더링 트리 구성:
브라우저는 서버로부터 받은 HTML 문서를 파싱하여 DOM(Document Object Model) 트리를 구성함.
DOM 트리는 문서의 구조를 표현하며, 각 HTML 요소는 노드로 표현됨.

CSS 파싱 및 스타일 트리 구성:
브라우저는 HTML 문서에 포함된 CSS 스타일 시트를 파싱하여 스타일 트리를 구성함.
스타일 트리는 각 요소에 대한 스타일 정보를 포함하며, 렌더링 엔진은 이를 기반으로 각 요소의 레이아웃과 스타일을 결정함.

렌더링 트리 구성:
DOM 트리와 스타일 트리를 결합하여 렌더링 트리를 구성함.
렌더링 트리는 화면에 실제로 표시될 요소들을 나타냄.

레이아웃 및 페인팅:
렌더링 트리를 기반으로 각 요소의 레이아웃을 계산하고, 화면에 페인팅(그리기)을 수행함.
브라우저는 렌더링 엔진을 사용하여 화면에 각 요소를 표시함.

자바스크립트 실행:
렌더링이 완료된 후에 자바스크립트 코드가 있다면 실행됨.
자바스크립트는 DOM을 조작하거나 비동기적으로 서버와 통신하여 페이지를 업데이트할 수 있음.

이벤트 처리:
브라우저는 사용자의 상호작용(클릭, 키보드 입력 등)을 감지하고, 해당 이벤트에 대한 처리를 수행

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8. 쿠키, 세션의 개념과 차이를 설명해보세요

쿠키와 세션의 개념 및 차이:

쿠키(Cookie):
개념: 쿠키는 클라이언트 측에 저장되는 작은 데이터 조각으로, 브라우저에 의해 관리됨. 서버가 응답할 때, Set-Cookie 헤더를 사용하여 클라이언트에게 쿠키를 설정함. 그 후, 클라이언트는 같은 도메인에 대한 요청을 보낼 때마다 해당 쿠키를 함께 전송함.

목적: 사용자의 상태 정보를 유지하거나 특정 작업을 기억하는 등의 다양한 용도로 사용됨.

저장 위치: 클라이언트 브라우저에 저장되므로 서버에 부담을 주지 않음.

보안 문제: 쿠키는 클라이언트에 저장되므로 사용자가 직접 수정할 수 있고, 중요한 정보를 저장하는 데 취약할 수 있음.

세션(Session):
개념: 세션은 서버 측에서 상태 정보를 저장하는 메커니즘입니다. 클라이언트가 서버에 처음 접속하면 서버는 해당 클라이언트에 대한 고유한 세션 ID를 생성하고, 이 ID를 쿠키 등을 통해 클라이언트에게 전달함. 클라이언트는 이 세션 ID를 이용하여 서버에 저장된 세션 데이터에 접근할 수 있음.

목적: 사용자의 상태 정보를 안전하게 저장하고 유지함. 로그인 정보, 장바구니 등과 같이 민감한 정보를 안전하게 처리할 수 있음.
저장 위치: 서버에 저장되므로 클라이언트에 대한 제어가 용이하며, 중요한 정보를 안전하게 보관할 수 있음.

보안 문제: 쿠키에 비해 상대적으로 안전하며, 클라이언트에서 직접 수정이 어려워 보안성이 좋음.
쿠키와 세션의 차이:

저장 위치: 쿠키는 클라이언트 측에 저장되어 브라우저에서 관리되고, 세션은 서버 측에 저장되어 서버에서 관리됨.

용도: 쿠키는 주로 사용자 상태를 유지하거나 특정 작업을 기억하는 데 사용되며, 세션은 중요한 정보를 안전하게 저장하고 유지하는 데 사용됨.

보안성: 세션은 쿠키에 비해 상대적으로 안전하며, 서버에 저장되기 때문에 클라이언트에서 직접 수정이 어려워 보안성이 좋음.

유효 기간: 쿠키는 만료 날짜나 세션 종료 시점에만 사라지지만, 세션은 브라우저를 종료하거나 세션 종료 시에만 사라집니다.

무상태(Stateless) 기술의 필요성:
HTTP 프로토콜은 무상태 프로토콜. 이는 각각의 HTTP 요청이 이전 요청과 무관하게 독립적으로 처리된다는 것을 의미함.
무상태 프로토콜의 필요성은 서버의 확장성과 성능 향상에 기인함. 서버는 각 요청을 독립적으로 처리할 수 있고, 클라이언트와 서버 간의 상태를 관리하지 않아도 됨.
무상태 프로토콜을 사용함으로써 서버는 요청을 받으면 해당 요청에 대한 응답을 생성하고 전송하면 됨. 상태 정보를 관리할 필요가 없기 때문에 서버의 부하가 줄어들고, 확장이 쉽게 이루어짐





'내일배움캠프 스프링3기' 카테고리의 다른 글

2024-01-15 TIL  (0) 2024.01.15
2024-01-11 TIL  (0) 2024.01.11
2024-01-08 TIL  (1) 2024.01.08
2024-01-05 TIL  (1) 2024.01.05
2024-01-04 TIL  (0) 2024.01.04