5

브라우저(Browser) 동작 방법

웹 서핑을 하다 보면 여러 URL을 통해 다양한 사이트를 방문하게 됩니다. 그렇다면 우리가 브라우저 주소창에 URL을 입력했을 때, 어떤 과정을 거쳐 원하는 페이지가 화면에 표시될까요?이는 웹의 기본적인 개념이지만, 막상 설명하려면 "렌더링", "파싱" 등 복잡한 용어들이 등장해 난감할 수 있습니다. 크롬, 파이어폭스, 사파리와 같은 오픈소스 브라우저를 기준으로, 브라우저가 동작하는 과정을 알아보겠습니다.브라우저의 주요 기능브라우저는 사용자가 요청한 자원을 서버에서 받아와 화면에 표시합니다. 이 자원은 HTML 문서, PDF, 이미지 등 다양한 형태일 수 있으며, 자원의 위치는 URI(Uniform Resource Identifier)에 의해 결정됩니다.브라우저는 HTML과 CSS 명세를 따라 HTML ..

CSRF(Cross-Site Request Forgery)

1. CSRF란 무엇인가?CSRF(Cross-Site Request Forgery)는 웹 보안 공격의 한 유형으로, 공격자가 인증된 사용자의 권한을 도용하여 사용자의 의지와는 무관하게 특정 요청을 서버로 보내도록 유도하는 방식입니다. 이를 통해 공격자는 피해자의 계정으로 악의적인 행동(데이터 삭제, 권한 변경, 거래 요청 등)을 수행할 수 있습니다.예시)사용자가 A 사이트에 로그인하여 인증 쿠키를 보유하고 있습니다.공격자는 악성 웹 페이지를 생성하여 사용자가 이 페이지를 방문하도록 유도합니다.사용자가 페이지를 방문하면, 공격자의 페이지에서 A 사이트로 악의적인 요청을 보냅니다.브라우저는 사용자가 이미 인증된 세션을 보유하고 있기 때문에, 해당 요청은 인증된 사용자로 간주되어 처리됩니다.2. CSRF의 작..

DNS(Domain Name System): 인터넷 주소록

1. DNS란 무엇인가?DNS(Domain Name System)는 사용자가 이해하기 쉬운 도메인 이름과 컴퓨터가 이해할 수 있는 숫자로 이루어진 IP 주소를 연결하는 분산 데이터베이스 시스템입니다.주요 역할도메인 이름을 IP 주소로 변환: 사용자가 "www.google.com"을 입력하면 DNS가 이를 해당 IP 주소로 변환하여 연결합니다.인터넷 자원의 이름 관리: DNS는 웹사이트뿐만 아니라 이메일 서버, 네트워크 장치 등 인터넷 자원의 이름을 관리합니다.DNS의 필요성사용자 편의성: 숫자로 이루어진 IP 주소를 기억하기 어려운 사용자를 위해, 이해하기 쉬운 이름을 제공합니다.확장성: 인터넷 자원이 증가함에 따라 도메인 이름 체계를 통해 효율적으로 관리할 수 있습니다.2. DNS의 작동 원리DNS는 ..

HTTP와 HTTPS의 차이

1. HTTP란 무엇인가?HTTP(HyperText Transfer Protocol)는 인터넷에서 데이터를 주고받기 위한 프로토콜입니다. 웹 서버와 웹 브라우저가 서로 통신할 때 사용하며, 텍스트, 이미지, 비디오 등 다양한 데이터를 전송합니다.주요 특징비암호화된 통신: HTTP는 데이터를 암호화하지 않고 전송하기 때문에, 네트워크 상에서 데이터를 쉽게 도청당할 수 있습니다.빠른 전송 속도: 암호화 과정이 없으므로 HTTPS보다 속도가 약간 더 빠를 수 있습니다.2. HTTPS란 무엇인가?HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 보안(SSL/TLS) 계층을 추가한 프로토콜입니다. 데이터를 암호화하여 전송하며, 사용자와 서버 간의 보안성을 보장합니다.주요 특징..

Servlet과 Dispatcher Servlet 란?

Servlet이란?Servlet은 자바 기반 웹 애플리케이션의 핵심 구성 요소 중 하나로, 클라이언트의 요청(request)을 처리하고 응답(response)을 생성하는 역할을 합니다.Servlet의 주요 특징Java 클래스 기반: HttpServlet 클래스를 상속받아 동작.동적 콘텐츠 생성: HTML, JSON 등 다양한 콘텐츠 타입 생성 가능.서블릿 컨테이너: Tomcat과 같은 컨테이너에서 실행.Servlet 동작 흐름클라이언트 요청: 사용자가 웹 브라우저에서 URL 입력.요청 처리: 서블릿 컨테이너가 요청을 Servlet으로 전달.응답 반환: Servlet이 응답 데이터를 생성하여 클라이언트로 반환.간단한 Servlet 코드 예시import java.io.*;import javax.servlet..