Fairy ' s

[15. March] 웹 서비스 접근 / TIL #2 본문

Devops Bootcamp

[15. March] 웹 서비스 접근 / TIL #2

berafairy 2023. 3. 15. 15:08

  • URL (Uniform Resource Locator) : 서버가 제공되는 환경에 존재하는 '파일의 위치'를 나타낸 정보
    - scheme, hosts, url-path로 구분할 수 있다.
  • URI (Uniform Resource Idenrifier) : 브라우저의 검색창을 클릭하면 나타나는 주소
    - URL의 구성요소에 query와 port, bookmark를 포함한다.
  • URL, URI / 'URL은 URI이다.'
    - URI는 URL을 포함하는 상위개념이다. 
    - URL : file://127.0.0.1/Users/username/Desktop
    - URI : http://www.google.com:80/search?q=Javascript
  scheme hosts port url-path query
URL file:// 127.0.0.1 x /Users/username/Desktop x
URI http:// www.google.com :80 /search ?q=Javascript

- scheme : 통신 방식(프로토콜)을 결정한다.
- hosts : 웹 서버의 이름이나 도메인, IP를 사용하여 주소를 나타낸다.
- port : 웹 서버에 접속하기 위한 통로
- url-path : 웹 서버에서 지정한 루트 디렉토리부터 시작하여 파일이 위치한 경로와 파일명
- query : 웹 서버에 전달하는 추가적인 질문

* 127.0.0.1 : 로컬 PC


IP, Port 

  • IP 주소 (Internet Protocol address) : 네트워크에 연결된 특정 PC의 주소를 나타내는 체계

nslookup을 사용해 IP주소를 확인할 수 있다.


IPv4 (Internet Protocol version 4) : 네 덩이의 숫자로 구분된 주소 체계

  • IPv4는 각 덩어리마다 0부터 255까지 나타낼 수 있다. 따라서 총 2^(32)인 약 43억개의 IP 주소를 표현할 수 있다.
  • 그 중 몇 가지는 이미 용도가 정해져 있다.
    - localhost, 127.0.0.1 : 현재 사용 중인 로컬 PC를 지칭
    - 0.0.0.0, 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소
      서버에서 접근 가능 IP 주소를 broadcast address로 지정하면, 모든 기기에서 서버에 접근할 수 있다.
  • 최근 PC의 양이 많아지며 IPv4로 할당할 수 있는 PC의 한계를 넘어서 *IPv6이 나오게 되었다.
  • Non-authoritative anwer : 조회한 정보가 공식적인 출처에서 제공된 것이 아니라, DNS 서버의 캐시에서 가져온 것이라는 의미

*IPv6 : 2^(128) 개의 IP주소를 표현할 수 있다.


  • Port : IP 주소가 가르키는 PC에 접속할 수 있는 통로(채널)
    - ex ≫ 127.0.0.1:3000 , localhost:3001
    - 포트 번호는 0 ~ 65,535 까지 사용할 수 있다.
    - 0 ~ 1024번 까지의 포트번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다.
    - 이미 정해진 포트 번호라도, 필요에 따라 자유롭게 사용할 수 있다.
    - 잘 알려진 포트 번호 : 22 : SSH, 80 : HTTP, 443 : HTTPS 등 / 더 많은 포트 번호 확인하기 ≪ 클릭

  • 도메인 (Domain) : 인터넷 상에서 사용되는 도메인은 전 세계적으로 고유하게 존재하는 이름이다.
    - 오른쪽부터 왼쪽으로 최상위 도메인과 여러 개의 도메인으로 구성된다.
    - 도메인을 표기할 때에는 낮은 단계부터 표현하여 최상위 도메인이 가장 뒤에 나타난다.
    - 도메인은 역트리 구조라고 하며 트리 구조의 정점을 '루트'라고 한다.
① 1단계 도메인 : 최상위 도메인 (Top Level Domain, TLD), 루트 바로 아래 단계의 도메인
- ccTLD (country code TLD) : 'kr'과 같이 국가를 나타내는 국가 코드 도메인
- gTLD (generic TLD) : 'com'같이 등록인의 목적에 따라 사용되는 일반 도메인

② 2단계 도메인 : 1단계 도메인의 하위 도메인
- 조직의 속성을 구분하는 'co (영리 기업)', 'go(정부 기관)', 'ac(대학)'과 같은 도메인

③ 3단계 도메인 : 조직이나 서비스의 이름을 나타내며, 도메인 사용자가 원하는 문자열을 사용할 수 있다.
- ex ≫ korea, google 등

④ 호스트 : www

 

  • DNS (Domain Name System) : 도메인 계층 구조를 반영한 네임 서버 / 호스트 네임('www.example.com')을 IP 주소(192.168.1.0)로 변환하거나, 그 반대의 역할을 수행하는 시스템

사용자가 'www.google.com'를 웹 브라우저에 입력 시 나타나는 사건
(Rescursive Query : Local DNS가 여러 DNS 서버를 차례로 질의해서 IP 주소를 찾아가는 과정)

  1. 사용자가 도메인을 입력하면, Local DNS에 'www.google.com'이라는 hostname에 대한 IP주소를 문의한다.
  2. Local DNS에 IP주소가 있으면 Local DNS가 사용자의 컴퓨터에 IP 주소를 준다.
  3. IP 주소가 없을 경우 해당 도메인에 대한 IP주소를 찾기 위해 다른 DNS 서버와 통신한다.
  4. 먼저, Root 네임 서버에 IP 주소를 문의한다.
  5. 'com' 정보를 등록하고 있는 Root 네임 서버는 'www.google.com' 의 IP 주소를 'com'(TLD) 네임 서버에 문의하라고 DNS 서버에게 'com' 네임 서버의 IP 주소를 알려준다.
  6. DNS 서버는 루트 네임 서버가 알려준 TLD 네임 서버의 IP 주소로 TLD 네임 서버에게 'www.google.com' 의 IP 주소를 문의해서 'google.com' 네임 서버의 IP 주소를 얻는다.
  7. DNS 서버는 'google.com' 네임 서버에 'www.google.com' 의 IP 주소를 알려준다.
  8. 사용자는 DNS 서버에게 받은 IP주소로 서버에 접속하게 된다.

- Root DNS 서버 => 'com'(TLD) DNS 서버 => 'google.com' DNS 서버
- 이렇게 매번 루트 네임 서버에서부터 도메인의 트리 구조를 따라 순서대로 IP 주소를 찾아가는 과정을 반복하는 것은 효율적이지 않다.
- 그래서 DNS 서버는 질의한 정보를 한동안 캐시(cache)에 저장하여 같은 질의가 들어오면 루트 네임 서버까지 가지 않고 바로 IP 주소를 알려준다.

Comments