Fairy ' s
[15. March] 웹 서비스 접근 / TIL #2 본문
- 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의 주소를 나타내는 체계
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 주소를 찾아가는 과정)
- 사용자가 도메인을 입력하면, Local DNS에 'www.google.com'이라는 hostname에 대한 IP주소를 문의한다.
- Local DNS에 IP주소가 있으면 Local DNS가 사용자의 컴퓨터에 IP 주소를 준다.
- IP 주소가 없을 경우 해당 도메인에 대한 IP주소를 찾기 위해 다른 DNS 서버와 통신한다.
- 먼저, Root 네임 서버에 IP 주소를 문의한다.
- 'com' 정보를 등록하고 있는 Root 네임 서버는 'www.google.com' 의 IP 주소를 'com'(TLD) 네임 서버에 문의하라고 DNS 서버에게 'com' 네임 서버의 IP 주소를 알려준다.
- DNS 서버는 루트 네임 서버가 알려준 TLD 네임 서버의 IP 주소로 TLD 네임 서버에게 'www.google.com' 의 IP 주소를 문의해서 'google.com' 네임 서버의 IP 주소를 얻는다.
- DNS 서버는 'google.com' 네임 서버에 'www.google.com' 의 IP 주소를 알려준다.
- 사용자는 DNS 서버에게 받은 IP주소로 서버에 접속하게 된다.
- Root DNS 서버 => 'com'(TLD) DNS 서버 => 'google.com' DNS 서버
- 이렇게 매번 루트 네임 서버에서부터 도메인의 트리 구조를 따라 순서대로 IP 주소를 찾아가는 과정을 반복하는 것은 효율적이지 않다.
- 그래서 DNS 서버는 질의한 정보를 한동안 캐시(cache)에 저장하여 같은 질의가 들어오면 루트 네임 서버까지 가지 않고 바로 IP 주소를 알려준다.
'Devops Bootcamp' 카테고리의 다른 글
[22. March] HTTP #1 / TIL (0) | 2023.03.22 |
---|---|
[16. March] HTTP messages / TIL (0) | 2023.03.16 |
[15. March] 클라이언트 - 서버 / TIL #1 (0) | 2023.03.15 |
[14. March] 시스템 모니터링 / TIL #2 (0) | 2023.03.14 |
[14. March] 원격 리눅스 서버 접속 / TIL #1 (0) | 2023.03.14 |
Comments