본문 바로가기

CS5

웹 브라우저에 URL을 입력한다면? 웹 브라우저에 URL을 입력한다면 사용자가 입력한 URL을 파싱한다. 입력한 URL에서 프로토콜, 호스트명, 포트번호, 경로, 쿼리 스트링 등을 파싱한다. DNS를 조회한다. 호스트명을 IP 주소로 변환하기 위해 DNS 서버에 호스트명을 조회한다. DNS는 복잡하고 빨라야 하기 때문에 DNS 데이터는 웹 브라우저 사이의 서로 다른 계층과 인터넷의 다양한 위치에 임시로 캐시를 저장한다. 웹 브라우저는 고유한 캐시, 운영체제 캐시, 라우터의 로컬 네트워크 캐시, 회사 네트워크 또는 인터넷 서비스 제공업체(ISP)의 DNS 서버 캐시를 확인한다. 만약 웹 브라우저 캐시 계층에서 IP 주소를 찾을 수 없는 경우 회사 네트워크 또는 ISP의 DNS 서버가 재귀적으로 DNS 조회를 수행한다. 웹 브라우저가 서버와 .. 2023. 3. 12.
DNS DNS DNS(Domain Name System)는 IP 주소와 도메인 이름을 상호 교환하는 프로토콜이다. DNS는 IP 주소에 도메인 이름을 붙여, 사람이 이해하기 쉬운 현태로 통신할 수 있게 한다. 도메인 이름 도메인 이름은 (.)으로 구분된 문자열로 구성된다. 이 문자영 하나하나를 라벨이라고 부른다. 도메인 이름은 FQDN(Fully Qualified Domain Name, 전체 주소 도메인 이름)이라 불리며 호스트 부분과 도메인 부분으로 구성되어 있다. 호스트 부분은 FQDN의 가장 왼쪽에 있는 라벨로 컴퓨터 그 자체를 나타낸다. 도메인 부분은 오른쪽부터 '루트, 탑레벨 도메인(TLD, Top Level Domain), 세컨드 레벨 도메인(2LD, 2nd Level Domain, 서드 레벨 도메인.. 2023. 3. 12.
SSL / TLS SSL / TLS 란? SSL / TLS는 애플리케이션을 암호화하는 프로토콜이다. HTTPS는 HyperText Transfer Protocol Secure의 약자로 HTTP를 SSL로 암호화한 것. SSL에서 이용하는 암호화 방식 공통키 암호화 방식 공통키 암호화 방식은 암호화키와 복호화키로 동일한 키(공통키)를 사용하는 암호화 방식. 대칭키 암호화 방식이라고도 한다. 공통키 암호화 방식은 스트림 암호와 블록 암호로 나뉜다. 스트림 암호 1비트 단위 또는 1바이트 단위로 암호화 처리하는 암호화 방식. 블록 암호에 비해 빠르게 처리할 수 있지만, 대표적인 스트림 암호인 RC4에 취약성이 발견되어 지금은 사용하지 않는 경향이 있다. 블록암호 데이터를 일정 비트 수 단위(블록)로 구분해 하나하나 암호화 처리.. 2023. 3. 11.
뮤텍스, 세마포어, 모니터 뮤텍스(Mutex) 뮤텍스는 상호배제를 위한 동기화 기법이다. 한 순간에 오직 하나의 스레드만 공유자원에 접근할 수 있도록 보호한다. 뮤텍스는 임계영역에 진입할 때 락을 걸고, 임계영역에서 나올 때 락을 해제한다. 세마포어(Semaphore) 세마포어는 공유자원의 접근을 제한하는 동기화 기법이다. 여러개의 스레드가 동시에 공유자원에 접근할 수 있지만, 제한된 개수의 스레드만이 동시에 접근할 수 있도록한다. 세마포어는 정수형 변수로 선언하며, 이 변수를 통해 스레드의 접근을 제어한다. 세마포어는 두 가지 연산을 제공한다. P(wait) 연산은 세마포어 값을 감소시키고, 0 이하가 되면 스레드를 블록한다. V(signal) 연산은 세마포어 값을 증가시키고, 블록된 스레드 중 하나를 깨운다. 모니터(Monit.. 2023. 3. 1.