요약
- DNS 서버 : 도메인 네임을 관리하는 네임 서버
- DNS(도메인 시스템) : 분산된 도메인 네임에 대한 관리 체계(프로토콜)
일반적으로 루트 도메인은 생략한다. 생략하지 않으면 www.google.com.
com이 최상단 도메인, google이 2단계 도메인 www는 3단계 도메인이다.
그리고 전체를 전체 전체 주소 도메인 네임(FQDN)이라고 한다.
www까지 알게되면 모든 도메인 네임을 알 수 있어서 FQDN의 첫번째 부분을 호스트 네임이라고 함
-IP 주소를 모르는 상태로 도메인 네임에 대응되는 IP 주소를 알아내는 과정
HOW?
1. Client -> 로컬 네임 서버 : www.ex.com 도메인의 IP주소가 먼지 알려줄래~~?
1-1. (알고 있는경우) 알려준다.
2. (모르는 경우) 로컬 네임 서버 -> 루트 네임 서버 : www.ex.com 도메인의 IP 주소가 뭐야?
3. 루트 네임 서버 -> 로컬 네임 서버 : com을 관리하는 TLD 네임 서버 주소를 줄게 거기 물어봐
4. 로컬 네임 서버 ->TLD 네임 서버 : www.ex.com 도메인의 IP 주소가 뭐야?
5. TLD 네임 서버 -> 로컬 네임 서버 : ex.com 을 관리하는 네임 서버의 주소를 알려줄게
6. 로컬 네임 서버 -> 책임 네임 서버 : 알려줘 !!
7. 책임 네임 서버 -> 로컬 네임 서버 : 00.00.00야~
8. 로컬 네임 서버 -> Client : 00.00.00야!
이런 과정을 거치는 것을 반복적 질의라고한다. 여기서 로컬 네임에게 중간에 응답을 하지않고, 바로 루트 네임 -> TLD 네임 -> 책임 네임 역순으로 와서 최종 응답만 보내는 것을 재귀적 질의라고 한다.
근데 보다시피 이렇게 된 과정만 봐도 8단계를 거치게 된다. 이렇게 되면 시간도 오래걸리고 네트워크 상 메시지 수가 지나치게 늘어날 수 있다.
그래서 이런 결과를 임시로 저장해서 추후에 활용하기 위해 캐싱을 한다! (DNS 캐시)
시작 라인(줄바꿈) -> 요청 메시지일 경우 (요청라인), 응답 메시지일 경우(상태라인)
필드 라인* (줄바꿈) -> HTTP 헤더
(줄바꿈)
메시지 본문**
.* 0개 이상
** 선택적
메서드 : 수행할 작업 종류, GET, POST, PUT, DELETE 등
요청 대상 : HTTP 요청을 보낼 서버의 자원, 보통 이곳에는(쿼리가 포함된) URI의 경로가 명시
HTTP 버전 : 말그대로 버전
필드 라인에 HTTP 헤더가 명시된다고 했다.
HTTP 헤더는 매우 많다고 한다. 중요한 헤더만 요약
1. Host : 요청을 보낼 호스트를 나타내는 헤더. 주로 도메인 네임으로 명시 (포트번호가 포함되어 있을 수 있다.)
2. User-Agent : 웹 브라우저와 같이 HTTP 요청을 시작하는 클라이언트 측의 프로그램을 의미
3. Referer : 클라이언트가 요청을 보낼 때 머무르고 있던 URL이 명시
4. Authorization : 클라이언트의 인증 정보를 담는 헤더
1. Server : 서버 측 소프트웨어와 관련된 정보를 명시
2. Allow : 클라이언트에게 허용된 HTTP 메서드 목록을 알려줌
3. Retry-After : 상태 코드 053 응답과 함께 사용할 수 있는 헤더, 자원을 사용할 수 있는 날짜 혹은 시각을 나타냄
4. Location : 클라이언트에게 자원의 위치를 알려 주기 위해 사용되는 헤더
5. WWW-Authenticate : 상태 코드 401과 함게 사용되는 헤더 인증 방식을 설명하는 헤더.
1. Data : 메시지가 생성된 날짜와 시각에 관련된 정보를 담은 헤더
2. Connection : 클라이언트의 요청과 응답 간의 연결 방식을 설정하는 헤더
3. Content-Length : 본문의 바이트 단위 크기를 나타냄
4. Content-Type, Content-Language, Content-Encoding : 전송하려는 메시지 본문의 표현 방식을 설명하는 헤더(aka. 표현 헤더)
도메인 네임과 네임 서버에 대한 설명으로 옳지 않은 것을 골라 보세요.(p.271)
4번, 루트 도메인은 . 이고 com은 최상위 도메인이다.(TLD)
HTTP 상태 코드에 대한 설명으로 옳지 않은 것을 골라 보세요.(p.307)
1번, 300번대 상태 코드는 리다이렉션 관련 상태코드이다.
HTTP 요청 메시지 확인해보기
책과 동일한 example.com으로 확인해보았다.
HTTP 요청 메시지 헤더와 HTTP 응답 메시지 헤더를 볼 수 있다.