User Interface
Rendering Engine (Browser, rayout Engine)
Networking / JS Engine / UI Backend
사용자 인터페이스: 사용자 인터페이스는 사용자가 브라우저와 상호 작용할 수 있는 웹 브라우저의 그래픽 인터페이스입니다.
사용자가 웹을 탐색할 수 있도록 하는 주소 표시줄, 메뉴 표시줄, 탭 및 기타 컨트롤로 구성됩니다.
렌더링 엔진: 렌더링 엔진은 웹 페이지를 렌더링하고 표시하는 역할을 합니다.
HTML, CSS 및 JavaScript 코드를 해석하여 웹 페이지의 시각적 표현으로 변환합니다.
네트워킹: 네트워킹 구성 요소는 웹 브라우저와 웹 서버 간의 통신을 처리합니다.
웹 페이지, 파일 및 기타 리소스에 대한 요청을 서버에 보내고 서버에서 응답을 받습니다.
JavaScript 엔진: JavaScript는 웹 페이지에 상호 작용 및 기능을 추가하는 데 사용되는 스크립팅 언어입니다.
JavaScript 엔진은 웹 페이지에서 JavaScript 코드를 해석하고 실행합니다.
플러그인: 플러그인은 웹 브라우저에 추가 기능을 추가하는 소프트웨어 구성 요소입니다.
플러그인의 예로는 Adobe Flash Player, Java 및 PDF 뷰어가 있습니다.
쿠키 및 캐시: 쿠키는 웹사이트에서 사용자의 기본 설정 및 활동에 대한 정보를 저장하는 데 사용하는 작은 파일입니다.
캐시는 브라우저가 최근에 액세스한 웹 페이지 및 리소스를 저장하는 데 사용하는 임시 저장 영역입니다. 이렇게 하면 이전에 방문한 웹사이트의 로딩 속도가 빨라집니다.
브라우저의 렌더링 프로세스는 사용자가 웹 페이지를 요청할 때 발생하는 복잡한 일련의 단계입니다. 다음은 렌더링 프로세스와 관련된 단계에 대한 개요입니다.
parsing : 브라우저는 요청된 페이지의 HTML 코드를 수신하고 문서 개체 모델(DOM)로 구문 분석합니다. DOM은 텍스트, 이미지, 비디오 및 기타 미디어를 포함하여 웹 페이지의 요소를 나타내는 트리형 구조입니다.
렌더 트리 구성: DOM이 생성된 후 브라우저는 CSS 스타일을 DOM 요소에 적용하고 렌더 트리를 구성합니다. 렌더링 트리는 각 요소의 레이아웃과 위치 지정을 포함하여 웹 페이지를 시각적으로 표현한 것입니다.
레이아웃: 렌더링 트리가 구성되면 브라우저는 크기, 위치 및 다른 요소와의 관계를 고려하여 페이지에 있는 각 요소의 레이아웃을 계산합니다.
페인팅: 마지막으로 브라우저는 렌더링된 콘텐츠를 화면에 페인팅합니다. 여기에는 올바른 위치와 색상으로 각 요소를 그리고 최종 이미지로 결합하는 작업이 포함됩니다.
사용자가 특정한 웹사이트에 방문할 때, 사용자 컴퓨터에 저장하는 기록 파일
ex: 아이디와 비밀번호를 저장하시겠습니까? -> 내 컴퓨터에 기록되는 것입니다.
쿠키는 일정 시간이 지나면 만료되도록 설정하거나 사용자의 컴퓨터에 무기한 남아 있도록 설정할 수 있습니다.
특정 사용자의 상태를 유지하는 기술
http는 상태를 갖고 있지 않기 때문에, 이를 보완하기 위해 사용되기도합니다.
ex: 웹사이트에 한번 로그인 하면, 다른 페이지로 이도앻도 계속 로그인 상태가 유지됩니다.
세션은 일반적으로 사용자의 로그인 상태를 추적하고 장바구니 항목 또는 양식 데이터와 같은 임시 데이터를 저장하는 데 사용됩니다. 사용자가 브라우저를 닫으면 일반적으로 세션이 종료되고 데이터가 삭제됩니다.
장점:
단점:
장점:
단점:
쿠키 : 사용자 컴퓨터에 저장 / 만료 시간 설정 가능 / 현재 웹사이트를 사용하지 않는 경우에도 접근 가능
세션 : 서버에 저장 / 브라우저를 닫을 때 만료 / 브라우저 사용하는 동안에만 접근 가능
요약하면 쿠키와 세션은 모두 웹 개발자가 사용자 데이터를 저장하고 유지 관리하는 데 유용한 도구이지만 서로 다른 용도로 사용됩니다. 쿠키는 일반적으로 사용자 기본 설정을 기억하고 사용자 행동을 추적하는 데 사용되는 반면 세션은 임시 데이터를 저장하고 사용자의 로그인 상태를 추적하는 데 사용됩니다.
웹상에서 데이터를 주고 받기 위한 프로토콜, 모바일이나 게임환경에서도 통신을 할 때 사용됩니다.
GET: GET 방식은 서버에서 리소스를 가져오는 데 사용됩니다. 요청된 리소스는 요청에 포함된 URI로 식별됩니다. GET 요청은 데이터만 검색해야 하며 서버에 부작용이 있어서는 안 됩니다.
POST: POST 방식은 리소스를 생성하거나 업데이트하기 위해 서버에 데이터를 제출하는 데 사용됩니다.
PUT: PUT 방식은 서버의 기존 리소스를 업데이트하는 데 사용됩니다.
DELETE: DELETE 메소드는 서버에서 리소스를 삭제하는 데 사용됩니다.
PATCH: PATCH 방식은 서버에 있는 기존 리소스의 일부를 업데이트하는 데 사용됩니다.
OPTIONS: OPTIONS 메소드는 URI로 식별되는 리소스에 사용 가능한 통신 옵션에 대한 정보를 검색하는 데 사용됩니다. 여기에는 지원되는 메서드, 헤더 및 콘텐츠 유형과 같은 정보가 포함될 수 있습니다.
HTTP 응답 상태 코드는 요청 결과를 나타냅니다. 가장 일반적인 상태 코드는 다음과 같습니다.
Keep-Alive를 사용하면 클라이언트와 서버가 일정 시간 동안 TCP 연결을 열어두는 데 동의하여 동일한 연결을 통해 여러 요청과 응답을 교환할 수 있습니다. 이렇게 하면 각 요청에 대해 새 TCP 연결을 설정하는 오버헤드가 줄어들기 때문에 웹 애플리케이션의 성능이 크게 향상될 수 있습니다.
HTTPS는 HTTP 프로토콜의 보안 버전인 Hypertext Transfer Protocol Secure의 약자입니다. 웹 서버와 웹 브라우저 간에 보안 연결을 설정하는 데 사용되어 이들 간에 교환되는 모든 데이터가 암호화되고 도청 및 변조로부터 보호됩니다.
HTTPS는 SSL/TLS(Secure Sockets Layer/Transport Layer Security) 프로토콜을 사용하여 서버와 클라이언트 간에 교환되는 데이터를 암호화합니다. 이 암호화는 권한이 없는 사람이 데이터를 가로채거나 읽을 수 없도록 합니다.
HTTPS 연결을 설정하려면 웹 서버에 SSL/TLS 인증서가 설치되어 있어야 합니다. 이 인증서는 인증 기관(CA)이라고 하는 신뢰할 수 있는 타사 조직에서 발급합니다. 웹 브라우저가 HTTPS를 사용하여 서버에 연결할 때 SSL/TLS 인증서가 유효하고 신뢰할 수 있는 CA에서 발급되었는지 확인합니다.
API(응용 프로그램 프로그래밍 인터페이스)는 서로 다른 소프트웨어 응용 프로그램이 서로 통신할 수 있도록 하는 일련의 프로토콜, 루틴 및 도구입니다. 서로 다른 소프트웨어 구성 요소가 상호 작용하고 데이터를 교환하는 방법을 정의합니다.
간단히 말해서 API는 서로 다른 소프트웨어 시스템 간의 다리 역할을 하여 원활하게 함께 작동할 수 있도록 합니다. 이를 통해 개발자는 처음부터 모든 것을 구축할 필요 없이 기존 애플리케이션의 기능을 활용하여 새로운 애플리케이션을 구축할 수 있습니다.
예를 들면, 우리가 지도를 직접 개발하지 않아도 네이버 혹은 카카오에서 제공하는 지도 API를 사용해서 지도의 기능을 하도록 구축할 수 있는 것을 의미합니다.
REST(Representational State Transfer) API는 인터넷을 통해 서로 다른 시스템 간의 통신을 허용하는 일종의 웹 서비스 아키텍처입니다. 웹 브라우저와 서버 간의 통신에 사용되는 표준 프로토콜인 HTTP(Hypertext Transfer Protocol) 원칙을 기반으로 합니다.
RESTful API는 HTTP 요청을 사용하여 서버에서 GET(데이터 검색), POST(데이터 제출), PUT(데이터 업데이트), DELETE(데이터 제거) 등과 같은 다양한 작업을 수행합니다.
서버의 응답은 클라이언트의 요청에 따라 일반적으로 JSON(JavaScript Object Notation) 또는 XML(eXtensible Markup Language)의 표준 형식으로 다시 전송됩니다. 응답에는 요청의 성공 여부를 나타내는 상태 코드와 관련 데이터가 포함됩니다.
-GET /books: 모든 도서 목록을 가져옵니다.
OAuth(Open Authorization)는 사용자가 암호를 공유하지 않고도 리소스에 대한 액세스 권한을 타사 애플리케이션에 부여할 수 있도록 하는 인증용 개방형 표준 프로토콜입니다. 사용자가 자신의 소셜 미디어 계정(예: Facebook, Google, Twitter)을 사용하여 로그인하거나 로그인 자격 증명을 공개하지 않고 다른 서비스의 계정에 액세스할 수 있도록 웹 및 모바일 애플리케이션에서 널리 사용됩니다.
액세스 토큰은 제한된 기간 동안 사용자 리소스에 대한 보안 액세스를 제공하는 고유한 문자열입니다. 사용자는 언제든지 해지할 수 있으며 타사 애플리케이션은 만료되면 새 토큰을 요청해야 합니다.
OAuth는 사용자가 로그인 자격 증명을 공유할 필요 없이 응용 프로그램이 사용자 리소스에 액세스할 수 있는 안전하고 사용자 친화적인 방법을 제공합니다. 소셜 미디어 플랫폼 및 기타 웹 서비스에서 널리 사용되어 타사 애플리케이션과 원활하게 통합됩니다.
JWT(JSON 웹 토큰)는 당사자 간에 보안 청구를 표현하고 전송하기 위한 표준 형식입니다. 일반적으로 클라이언트와 서버 사이에서 두 당사자 사이에 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 메커니즘입니다.
JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다.
JWT는 상태 비저장 메커니즘이므로 서버가 사용자의 세션 데이터를 저장할 필요가 없습니다. 따라서 많은 수의 사용자를 처리할 수 있도록 확장 가능하고 효율적입니다. 또한 JWT는 자체 포함되어 있기 때문에 공유 데이터베이스나 서버 없이도 다양한 도메인과 플랫폼에서 사용할 수 있습니다.
전반적으로 JWT는 특히 인증 및 승인이 필요한 웹 애플리케이션의 경우 당사자 간에 정보를 전송하는 안전하고 효율적인 방법입니다.
너무 유익해요! 감사합니다