1. 웹 브라우저가 메시지를 만든다

Sixhustle·2022년 1월 13일
0

브라우저는 URL을 읽고, URL의 의미에 따라 리퀘스트 메시지를 만듭니다.


1. HTTP 리퀘스트 메시지를 만든다.

1-1. URL 입력

Uniform Resource Locator로 서버에 접근하기 위한 주소입니다.

  1. URL의 맨 앞에는 서버에 접근하는 방식인 프로토콜을 명시합니다.
  2. 서버의 도메인이나 액세스 하는 파일의 경로를 URL에 포함시킵니다.


1-2. 브라우저의 URL 해독

브라우저는 웹 서버에 메시지를 보내기 위해 URL을 해독합니다.

  1. (b)를 보면,
  2. www.lab.cyber.co.kr 도메인을 가지는 서버에 접속합니다.
  3. /dir/file1.html 경로의 파일에 접근합니다.

2-1. 파일명을 생략한 경우

(a) http://www.lab.cyber.co.kr/dir/ 
  1. 끝이 /로 끝나는 것은 /dir/ 다음의 파일명을 생략한 것입니다.
  2. 서버의 설정으로 파일명을 생략해도 default값을 채워줍니다. 보통 index.html 또는 default.htm 파일로 설정합니다.
    2-1. http://ww.lab.cyber.co.kr/dir/index.html
    2-2. http://ww.lab.cyber.co.kr/dir/default.html
(b) http://www.lab.cyber.co.kr
  1. / 까지 생략되었습니다.
  2. Root 경로의 index.html 또는 default.htm 파일에 접근할 것입니다.
(c) http://www.lab.cyber.co.kr/whatisthis
  1. whatisthis 파일이 있으면, 파일로 봅니다.
  2. whatisthis 파일이 없으면, 디렉토리명으로 봅니다.

1-3. HTTP 기본 개념

HTTP(Hyper Text Transfer Protocol)은 클라이언트와 서버가 주고받는 메시지의 내용이나 순서를 정한 것입니다.

  1. 클라이언트는 서버에게 무엇을, 어떻게를 포함하여 리퀘스트 메시지를 보냅니다.
    1-1. 어떻게 : 메소드로, 서버에게 어떤 동작(데이터에 접근할지, 데이터를 저장할지)을 하고싶은지 전달합니다.
    1-2. 무엇을 : URI를 칭하며, 페이지 데이터를 저장한 파일의 이름을 말합니다.

  1. 서버는 메시지를 판단한 후 요구에 다라 동작하고, 결과 데이터를 응답 메시지에 저장합니다.
  2. 응답 메시지의 맨 앞 부분에는 실행 결과를 나타내는 status code가 있습니다.


1-4. HTTP 리퀘스트 메시지

HTTP 메시지는 포맷이 결정되어 있으므로, 브라우저는 포맷에 맞춰 리퀘스트 메시지를 만듭니다.

  1. 리퀘스트 라인
    1-1. Method가 가장 중요합니다. 서버에게 어떤 동작을 취해달라고 요청하는 것입니다.
    1-2. URI : 보통 파일이나 프로그램의 경로를 씁니다.

  2. 메시지 헤더
    2-1. 날짜, 클라이언트 측이 취급하는 데이터의 종류, 언어 등 다수의 항목이 사양으로 정해져 있습니다.

  1. 메시지 본문
    3-1. 메시지 헤더 뒤 공백 이후의 부분을 말합니다.
    3-2. 보통 POST 메소드인 경우, 폼에 입력한 데이터 등을 메시지 본문 부분에 씁니다.

1-5. 응답이 되돌아온다.

리퀘스트의 실행 결과를 나타내는 status code와 응답 문구를 첫 번째 행에 씁니다.
1. status code : 실행 결과를 알려주는 것이 목적으로, 숫자로 나타냅니다.
2. 응답 문구 : 사람에게 실행 결과를 알리는 것이 목적입니다.


  1. 페이지가 문장으로만 되어 있으면 끝입니다.
  2. 영상 등이 포함되어 있는 경우, 문장 안에서 영상 파일을 나타내는 태그를 탐색합니다.
  3. 태그를 만나면, 영상용 공백을 비워두고 문장을 표시합니다.
  4. 서버에 영상 파일을 달라고 다시 한 번 요청합니다.
  5. 비워 뒀던 공백에 표시합니다.

2. IP주소를 DNS서버에 조회

2-1. IP 주소의 기본

IP주소는 네트워크 번호와 호스트 번호를 합쳐 부르는 것이다.
브라우저는 HTTP 메시지를 네트워크에 송출하는 기능은 없으므로, OS에 의뢰하여 송신하는데, 이 때 IP주소가 필요하다.

TCP/IP

  1. 인터넷이나 사내 LAN(Local Area Network)은 TCP/IP의 개념에 기초하여 만들어졌다.
  2. TCP/IP는 서브넷이라는 작은 네트워크를 라우터로 접속하여 전체 네트워크가 만들어진다.
    2-1. 서브넷 : 허브(패킷을 중계하는 장치)에 몇 대의 PC가 접속된 단위를 하나로 봄
  3. OO동 OO번지 처럼, 네트워크 번호(OO동)와 호스트 번호(OO번지)를 할당하고, 두 개를 합쳐 IP 주소라고 합니다.
  4. 송신측이 메시지를 보내면, 서브네 안에 있는 허브가 운반하고, 가장 가까운 라우터까지 도착한다.
  5. 라우터가 다음 라우터를 판단하고, 목적지까지 보내도록 송신 동작을 실행한다.

IP 주소

  1. IP주소의 규칙에는 네트워크 번호 + 호스트 번호 = 32비트로 한다는 것만 결정되어 있다.
  2. 네트워크를 구축할 때, 사용자가 직접 내역을 결정할 수 있다.
    2-1. 이 내역을 나타내는 정보를 필요에 따라 IP주소에 덧붙이는데, 이 정보는 넷마스크라고 합니다.

  1. 1인 부분은 네트워크 번호를 나타낸다.
  2. 0인 부분은 호스트 번호를 나타낸다.
  3. 호스트 번호 부분의 비트가 모두 0이면 서브넷 자체를 나타낸다.
  4. 호스트 번호 부분의 비트가 모두 1이면 서브넷에 있는 기기 전체에 패킷을 보내는 브로드캐스트를 나타낸다.

2-2. 도메인명 vs IP 주소

사람은 이름을 사용하고, 라우터는 IP 주소를 사용하는 것이 좋다.

  1. 전화번호를 모두 기억하기 어려운 것처럼 숫자를 나열한 IP 주소는 기억하기 어렵다.
  2. 도메인 명을 사용하여 통신한다면, 최대 255바이트가 필요하기 때문에 4바이트만 사용하는 IP주소보다 효율성이 떨어진다.

2-3. Socket 라이브러리로 IP 주소 찾기

IP 주소를 조사하는 것을 네임 리졸루션이라 하는데, 이 것을 실행하는 것이 DNS 리졸버 입니다.
(리졸버는 Socket 라이브러리에 포함되어 있습니다.)

  1. Socket 라이브러리는 네트워크의 기능을 호출하기 위한 OS에 포함된 것입니다.

2-4. 리졸버로 DNS 서버 조회

  1. 브라우저 등의 프로그램을 만들 때, 위와 같이 리졸버의 프로그래명만 써도 리졸버를 호출할 수 있다.
  2. 리졸버를 호출하면, 리졸버가 DNS서버에 조회 메시지를 보낸다.
  3. DNS서버의 응답에는 IP주소가 포함되어 있고, 브라우저에서 지정한 메모리 영역에 넣는다.

2-5. 리졸버 내부의 작동

리졸버도 네트워크 송/수신 기능이 없기 때문에 OS의 내부에 포함된 프로토콜 스택에 실행을 의뢰한다.

  1. DNS 서버에 메시지를 송신할 때도 DNS 서버의 IP 주소가 필요합니다.
  2. DNS 서버의 IP는 TCP/IP 설정 항목의 하나하나로 컴퓨터에 미리 설정되어 있습니다.

3. 전 세계의 DNS서버가 연대한다.

3-1. DNS 서버의 기본 동작

클라이언트로부터 조회 메시지를 받고, 아래 3가지 정보를 포함하여 응답한다.

1. 이름

  1. 서버나 메일 배송 목적지와 같은 이름입니다.

2. 클래스

  1. DNS의 구조를 고안했을 때, 인터넷 이외에도 네트워크의 이용을 검토했기 때문에 클래스는 식별자 역할합니다.
  2. 현재는 인터넷 외에 네트워크는 소멸되어 클래스는 항상 IN(인터넷) 값 입니다.

3. 타입

  1. 이름에 어떤 종류의 정보가 지원되는지를 나타냅니다.
  2. A : IP 주소가 지원되는 것을 나타냄
  3. MX : 이름에 메일 배송 목적지가 지원되는 것을 나타냄
    3-1. MX 타입의 경우, 복수의 메일 서버가 등록되어 있을 때, 우선 순위를 같이 등록해 놓음
  4. Etc : PTR(IP 주소에서 이름을 조사), CNAME(닉네임을 붙임), NS(DNS 서버의 IP 주소를 등록) 등

  1. 도메인은 .(dot)으로 계층을 구분합니다.
    1-1. www.lab.cyber.co.kr : com아래 cyber —> lab —> www 계층을 가집니다.
  2. 계층으로 하위의 도메인을 담당하는 DNS 서버의 IP주소를 그 상위의 DNS 서버에 등록합니다.
  3. 최상위에는 Root 도메인이 있고, DNS를 찾기 위해 인터넷에 존재하는 DNS 서버에 전부 등록되어 있습니다.
  4. DNS 서버는 정보를 캐시하고 있습니다.

Reference

0개의 댓글