네트워크 8

[혼자공부하는네트워크] DNS, HTTP, TCP

DNS, HTTP, 그리고 TCP가 어떻게 상호작용하는지 순차적으로 설명해 드릴게요.1. DNS 요청사용자가 웹 브라우저에서 "www.example.com"에 접속하면, 먼저 해당 도메인에 대한 IP 주소를 알아내야 합니다. 이 과정에서 **DNS(Domain Name System)**가 사용됩니다.DNS 요청을 통해 **www.example.com**의 도메인 이름이 IP 주소로 변환됩니다. (예: 93.184.216.34)이렇게 얻은 IP 주소는 실제 웹 서버가 위치한 컴퓨터를 가리키며, 이 주소로 클라이언트가 요청을 보냅니다.2. TCP 연결 설정DNS를 통해 IP 주소를 알아냈으니 이제 HTTP 요청을 보내기 위해 서버와 TCP 연결을 설정합니다.TCP는 3-way handshake라는 과정을 통..

네트워크 2024.09.21

[혼자공부하는네트워크] DNS 계층적 구조

DNS에서 도메인을 계층적으로 나누는 이유는 다음과 같습니다:관리의 분산: 계층 구조를 사용하면 전 세계적으로 도메인 이름을 중앙에서 관리하지 않고, 각 계층에서 독립적으로 관리할 수 있습니다. 예를 들어, com 도메인은 한 기관에서 관리하고, example.com은 다른 기관이 관리할 수 있습니다. 이렇게 분산된 관리로 인해 DNS 시스템은 더 효율적으로 동작합니다.확장성: 계층 구조는 도메인 네임 시스템이 수많은 도메인 이름을 쉽게 관리할 수 있도록 합니다. 도메인이 하위 도메인으로 계속해서 확장될 수 있어, 도메인 네임 공간의 한계를 초월할 수 있습니다.충돌 방지: 도메인을 계층적으로 나누면, 서로 다른 관리 기관이 같은 이름을 사용하는 문제를 방지할 수 있습니다. 예를 들어, example.co..

네트워크 2024.09.21

[HTTP완벽가이드] OpenSSL

OpenSSL은 SSL/TLS 보안 통신을 구현하는 데 필수적인 도구이지만, **CA(인증 기관)**의 인증 과정이 필요 없는 것은 아닙니다. 두 가지 개념이 서로 다른 역할을 하기 때문에 혼동하지 않도록 명확히 이해하는 것이 중요합니다.OpenSSL과 CA의 역할OpenSSL:OpenSSL은 암호화 관련 기능을 제공하는 도구와 라이브러리입니다. 이를 통해 SSL/TLS 프로토콜을 구현하고, 데이터 암호화, 인증서 생성, 키 관리 등의 작업을 수행할 수 있습니다.OpenSSL을 사용하여 SSL/TLS 인증서를 생성하고, 서버에서 이 인증서를 사용해 보안 통신을 설정할 수 있습니다.그러나 OpenSSL 자체로는 클라이언트가 그 서버가 "안전한 사이트"임을 확인할 수 없습니다.CA(인증 기관):CA는 공인된..

네트워크 2024.08.15

[HTTP완벽가이드] HTTPS 관련 질문

HTTPS 핸드쉐이크는 클라이언트(예: 웹 브라우저)와 서버(예: 웹사이트)가 안전한 통신을 수립하기 위해 진행하는 과정입니다. 이 과정에서 중요한 역할을 하는 것이 바로 SSL/TLS 인증서이며, 이 인증서는 **인증 기관(CA, Certificate Authority)**에 의해 발급됩니다. 이제 HTTPS 핸드쉐이크 과정에서 보안 관련 역할을 누가 담당하는지 살펴보겠습니다.HTTPS 핸드쉐이크 과정 요약클라이언트 요청: 클라이언트가 서버에 접속하려고 할 때, HTTPS를 사용하여 연결을 요청합니다.서버 인증서 제공: 서버는 자신의 SSL/TLS 인증서를 클라이언트에게 제공합니다. 이 인증서에는 서버의 공개키, 서버의 도메인 이름, 인증서 발급 기관, 유효 기간 등의 정보가 포함되어 있습니다.인증서 ..

네트워크 2024.08.15

[HTTP완벽가이드] 전자서명

전자서명에서 서명은 암호 기술을 사용해 이루어집니다. 구체적으로는 공개 키 암호화 기법을 기반으로 합니다. 이 과정은 크게 두 단계로 나뉩니다: 서명 생성과 서명 검증.1. 서명 생성서명자는 다음과 같은 방식으로 전자서명을 생성합니다:해시 함수 적용: 먼저, 서명할 데이터(문서)를 해시 함수에 입력하여 고정된 길이의 해시 값을 생성합니다. 해시 함수는 데이터가 조금만 변해도 완전히 다른 해시 값을 생성하는 특징을 가지고 있습니다.서명 생성: 서명자는 자신의 개인 키를 사용해 이 해시 값을 암호화하여 서명을 생성합니다. 이 암호화된 해시 값이 바로 전자서명입니다.2. 서명 검증문서를 수신한 사람(검증자)은 서명을 다음과 같은 과정으로 검증합니다:해시 값 재생성: 수신한 문서에 대해 같은 해시 함수를 사용해..

네트워크 2024.08.15

[HTTP완벽가이드] 프락시

웹 중개자 개인 프락시 : 하나의 클라이언트만을 위한 프락시를 개인 프락시라고 부른다. 공용 프락시: 중앙 집중형 프락시를 관리하는게 더 비용효율이 높고 쉽다. 그리고 캐시 프라시 서버와 같은 몇몇 프라시 애플리케이션은 프락시를 이용하는 사용자가 많을 수록 유리 because  여러 사용자들 공통된 요청에서 이득을 취할 수 있다 (어떻게? 라는 질문 남음) 프락시대 게이트웨이 엄밀하게 말하면, 프락시 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결하고, 게이트 웨이는 서로 다른 프로토콜을 사용하는 둘 이상을 연결한다. 게이트웨이는 클라이언트와 서버가 서로 다른 프로토콜로 말하더라도 서로 간의 트랜잭션을 완료할 수 있도록 프로토콜 변환기 처럼 동작한다. 실질적으로 프락시와 게이트웨이의 차이점은 모호..

네트워크 2024.07.11

[HTTP완벽가이드] 응답엔터티

응답 메시지는 주로 다음을 포함-응답 본문의 MIME타입을 서술하는 Content-Type 헤더 -응답 본문의 길이를 서술하는 Content-Length 헤더 -실제 응답 본문의 내용  MIME 타입 결정하기      mime.types      매직 타이핑 ★      유형명시      유형협상  리다이렉션    -URL증강    -부하균형    -디렉토리 이름 정규화 응답보내기- 서버는 커넥션 상태를 추적해야 하며 지속적인 커넥션은 특별히 주의해서 다룰 필요가 있다. cf) 로그파일

네트워크 2024.07.10

[HTTP완벽가이드] Docroot

웹서버는 여러 종류의 리소스 매핑을 지원한다,  가장 단순한 형태 -> 요청 URI를 웹서버의 파일 시스템 안에 있는 파일 이름으로 사용하는 것  일반적으로 웹 서버 파일 시스템의 특별한 폴더를 웹 콘테츠를 위해 예약 해둠 -> docroot가상 호스팅 된 docroot-> 가상 호스팅 웹 서버는 각 사이트에 그들만의 분리된 문서 루트를 주는 방법으로 한 서버에서 -> 여러 개의 웹사이트를 호스팅 함디렉터리 목록웹 서버는, 경로가 파일이 아닌 디렉터리를 가리키는 , 디렉터리 URL에 대한 요청을 받을 수 있음 아파치 웹 서버에서는 DirectoryIndex 설정 지시자를 통해 기본 디렉터리 파일로 사용될 파일 이름의 합을 설정할 수 있다.(140p.g 참고 http완벽가이드)동적 콘텐츠 리소스 매핑  웹..

네트워크 2024.07.10