※ 본 포스트는 [강민철, 『혼자 공부하는 네트워크』, 한빛미디어] 복습을 위해 작성된 글입니다.
※ 비영리적인 순수한 학습 기록용이며, 원저작물의 권리는 저자 및 출판사에 있습니다.
※ 저작권 문제가 있을 경우, 즉시 수정 또는 삭제하겠습니다.1️⃣ DNS와 자원
01. 도메인 네임과 네임 서버
도메인 네임
호스트의 IP 주소와 대응되는 문자열 형태의 호스트 특정 정보네임 서버
도메인 네임과 IP 주소를 관리하는 서버- 도메인 네임을 관리하는 네임 서버는 DNS 서버라고도 함
도메인 네임의 계층적 분류
루트 도메인 > 최상위 도메인 > 2단계 도메인 > ...전체 주소 도메인 네임(FQDN)
도메인 네임을 모두 포함하는 도메인 네임- FQDN의 첫 번째 부분을 호스트 네임이라고 함
도메인 네임 시스템 (Domain Name System, DNS)
계층적이고 분산된 도메인 네임에 대한 관리 체계
02. 계층적 네임 서버
- 리졸빙(resolving)
Client > 로컬 DNS 서버 > 루트 DNS 서버 > TLD 서버 > 책임 서버 > Host로컬 네임 서버
클라이언트가 도메인 네임을 통해 IP 주소를 알아내고자 할 때 가장 먼저 찾게 되는 네임 서버루트 네임 서버
루트 도메인을 관장하는 네임 서버- 질의에 대해 TLD 네임 서버의 IP 주소 반환 가능
TLD 네임 서버
TLD를 관리하는 네임 서버- TLD의 하위 도메인 네임을 관리하는 네임 서버 주소를 반환 가능
책임 네임 서버
특정 도메인 영역을 관리하는 네임 서버- 자신이 관리하는 도메인 영역의 질의에 대해서는 다른 네임 서버에게 떠넘기지 않고 곧바로 담할 수 있는 네임 서버
재귀적 질의 vs 반복적 질의
| 질의 | 방식 |
|---|---|
| 재귀적 질의 | 재귀적으로 서버들이 다음 단계에 질의하는 과정을 반복하며 최종 응답 결과를 역순으로 전달받는 방식 |
| 반복적 질의 | 각 서버가 다음으로 질의할 네임 서버의 주소를 알려주며 최종 응답 결과를 클라이언트에게 알려주는 방식 |
- DNS 캐시 (DNS Cache)
TTL 동안의 시간만큼 도메인 네임의 질의 결과를 임시 저장하는 것
03. 자원을 식별하는 URI
자원
네트워크상의 메시지를 통해 주고받는 대상URL vs URN
| URI | 방식 |
|---|---|
| URL | 위치를 이용해 자원을 식별하는 방식 |
| URN | 이름을 이용해 자원을 식별하는 방식 |
- URL
scheme(자원에 접근하는 방법) + authority(호스트를 특정할 수 있는 정보) + path(자원이 위치한 경로) + query(자원의 세부 내용을 알려주는 정보) + fragment(자원의 한 조각을 가리키기 위한 정보)
※ <좀 더 알아보기> - DNS 레코드 타입
| 레코드 유형 | 설명 |
|---|---|
| A | 특정 호스트에 대한 도메인 네임과 IPv4 주소와의 대응 관계 |
| NS | 특정 호스트의 IP 주소를 찾을 수 있는 네임 서버 |
| MX | 해당 도메인과 연동되어 있는 메일 서버 |
2️⃣ HTTP
01. HTTP의 특성
요청-응답 기반 프로토콜
클라이언트-서버 구조 기반의 요청-응답 프로토콜미디어 독립적 프로토콜
주고받을 미디어 타입에 특별히 제한을 두지 않고 독립적으로 동작이 가능한 미디어 독립적인 프로토콜Stateless 프로토콜
서버가 HTTP 요청을 보낸 클라이언트와 관련된 상태를 기억하지 않음지속 연결 프로토콜
하나의 TCP 연결상에서 여러 개의 요청-응답을 주고 받을 수 있는 기술로, HTTP/1.1 이상에서 제공하는 기술
02. HTTP 메시지 구조
- HTTP 요청 메시지
method URL Version - 요청 라인 (request line)
header field value - 헤더 라인 (header line)
...
header field value
Entity body - 개체 몸체 (entity body)- HTTP 응답 메시지
version status_code phrase - 상태 라인 (status line)
header_field_name value - 헤더 라인 (header line)
...
header_field_name value
Entity body - 개체 몸체 (entity body)03. HTTP 메서드
| HTTP 메서드 | 설명 |
|---|---|
| GET | 자원을 습득하기 위한 메서드 |
| HEAD | GET과 동일하나, 헤더만을 응답받는 메서드 |
| POST | 서버로 하여금 특정 작업을 처리하게끔 하는 메서드 |
| PUT | 자원을 대체하기 위한 메서드 |
| PATCH | 자원에 대한 부분적 수정을 위한 메서드 |
| DELETE | 자원을 삭제하기 위한 메서드 |
04. HTTP 상태 코드
| 상태 코드 | 이유 구문 | 설명 |
|---|---|---|
| 200 | OK | 요청이 성공했음 |
| 404 | Not Found |
※ <좀 더 알아보기> - HTTP의 발전(HTTP/0.9 ~ HTTP/3.0)
| 버전 | 주요 특징 | 전송 방식 | 지속 연결 | 요청/응답 형식 | 주요 개선점 |
|---|---|---|---|---|---|
| HTTP/0.9 | 가장 초기 버전, 단순한 요청/응답 | 텍스트 기반 (GET만 지원) | 비지속 연결 | HTML 문서만 응답 | 헤더 없음, 매우 단순 |
| HTTP/1.0 | 헤더 추가로 유연한 통신 가능 | 텍스트 기반 | 비지속 연결 (요청마다 연결) | 헤더 + 본문 | 다양한 콘텐츠 타입 전송 가능 |
| HTTP/1.1 | 가장 널리 사용된 버전 | 텍스트 기반 | 지속 연결 (Keep-Alive) | 헤더 + 본문 | 파이프라이닝, 캐싱, 호스트 헤더 |
| HTTP/2.0 | 성능 향상 중심 | 바이너리 기반 | 지속 연결 | 헤더 + 본문 (프레임 단위) | 멀티플렉싱, 헤더 압축, 서버 푸시 |
| HTTP/3.0 | 최신 버전, 지연 시간 최소화 | QUIC (UDP 기반) | 지속 연결 | 프레임 단위 (스트림) | 연결 복원, 패킷 손실 최소화, 빠른 전송 |
3️⃣ HTTP 헤더와 HTTP 기반 기술
01. HTTP 헤더
- 요청 시 활용되는 HTTP 헤더
| 구분 | 헤더 이름 | 설명 |
|---|---|---|
| 요청 | Host | 요청이 전송되는 서버의 도메인 이름과 포트 번호를 지정 |
| 요청 | User-Agent | 클라이언트(브라우저, 앱 등)의 정보 전달 |
| 요청 | Referer | 현재 요청을 보낸 이전 웹페이지의 주소 |
| 요청 | Authorization | 사용자 인증 정보를 서버에 전달 (예: 토큰, 자격 증명) |
- 응답 시 활용되는 HTTP 헤더
| 구분 | 헤더 이름 | 설명 |
|---|---|---|
| 응답 | Server | 응답을 생성한 서버의 소프트웨어 정보 |
| 응답 | Allow | 클라이언트가 사용할 수 있는 HTTP 메서드 목록 명시 |
| 응답 | Retry-After | 요청을 다시 시도하기까지 대기해야 하는 시간 명시 |
| 응답 | Location | 클라이언트를 다른 URL로 리다이렉션할 때 사용 |
| 응답 | WWW-Authenticate | 인증이 필요한 자원 접근 시 인증 방법을 제시 |
- 요청과 응답 모두에서 활용되는 HTTP 헤더
| 구분 | 헤더 이름 | 설명 |
|---|---|---|
| 공통 | Date | 메시지가 생성된 날짜와 시간 정보 |
| 공통 | Connection | 연결을 유지할지 여부 설정 (예: Keep-Alive, close) |
| 공통 | Content-Length | 메시지 본문의 길이(바이트 단위) |
| 공통 | Content-Type | 전송되는 데이터의 MIME 타입 지정 (예: text/html) |
| 공통 | Content-Language | 콘텐츠의 언어 정보 명시 |
| 공통 | Content-Encoding | 콘텐츠 압축 방식 명시 (예: gzip, deflate) |
02. 캐시
- 캐시
불필요한 대역폭 낭비와 응답 지연을 방지하기 위해 정보의 사본을 임시로 저장하는 기술
03. 쿠키
- 쿠키
서버에서 생성되어 클라이언트 측에 저장되는 데이터로, 상태를 유지하지 않는 HTTP의 특성을 보완하기 위한 수단
04. 콘텐츠 협상과 표현
- 콘텐츠 협상
같은 URI에 대해 가장 적합한 자원의 형태를 제공하는 매커니즘
📚 회고
드디어 마지막 5장, 응용 계층(L5) 공부를 마쳤다.
사실 책을 통해 학습은 이미 끝냈지만, ‘컴퓨터 네트워크’ 수업에서 각 계층을 하향식으로 배우고 있어 포스팅은 조금 미뤄두었다.
중간고사 범위와 겹치다 보니 이번 기회에 내용을 한 번 더 다지고, 복습하는 마음으로 정리했다.
일부 표현 방식은 달랐지만 큰 틀은 같았고, 덕분에 이전에 정리한 내용까지 포괄적으로 정리할 수 있었다.
이로써 이론 파트는 모두 마무리하였다. 이제 남은 6~7장은 와이어샤크 실습이니, 겨울방학 때 실제로 손에 익혀볼 계획이다.
'CSE > Network' 카테고리의 다른 글
| [혼공네트] Ch04. 전송 계층 (0) | 2026.04.14 |
|---|---|
| [혼공네트] Ch03. 네트워크 계층 (0) | 2026.04.14 |
| [혼공네트] Ch02. 물리 계층과 데이터 링크 계층 (0) | 2026.04.14 |
| [혼공네트] Ch01. 컴퓨터 네트워크 시작하기 (0) | 2026.04.14 |