웹 서비스 접근하기

Jaeminst·2022년 2월 16일
0
post-custom-banner

브라운저의 작동 원리

URL과 URI의 차이

  • URL (Uniform Resource Locator)
    네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냅니다. URL은 scheme, hosts, url-path로 구분할 수 있습니다.
  • URI (Uniform Resource Identifier)
    일반적으로 URL의 기본 요소인 scheme, hosts, url-path에 더해 query, bookmark를 포함합니다. query는 웹 서버에 보내는 추가적인 질문입니다.
부분명칭설명
file://, http://, https://scheme통신 프로토콜
127.0.0.1, www.google.comhosts웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인, IP
:80, :443, :3000port웹 서버에 접속하기 위한 통로
/search, /Users/username/Desktopurl-path웹 페이지, 이미지, 동영상 등의 파일위치까지의 경로
q=JavaScriptquery웹 서버에 전달하는 추가 질문

IP 주소와 포트(Port)

  • IP (Internet Protocol)
    인터넷상에서 사용하는 주소체계를 의미합니다. 인터넷에 연결된 모든 PC는 IP 주소체계를 따라 네 덩이의 숫자로 구분된 IP 주소체계이며 IPv4라고 합니다.

    Terminal 에서 nslookup을 이용해 도메인의 IP주소를 확인할 수 있습니다.

  • 약속된 IP 주소
    localhost, 127.0.0.1 : 현재 사용중인 로컬 PC
    0.0.0.0, 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소

    서버에서 접근 가능 IP주소를 브로드캐스트 주소로 지정하면, 모든 기기에서 서버에 접근할 수 있습니다.

  • 포트(Port)
    IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미합니다.
    이미 사용 중인 포트는 중복해서 사용할 수 없습니다.
    포트 번호는 0~ 65,535 까지 사용할 수 있습니다. 그 중에서 0 ~ 1024번 까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있습니다. 그중에서 반드시 알아야 할 잘 알려진 포트 번호는 다음과 같습니다.

    22 : SSH
    80 : HTTP
    443 : HTTPS
    더 많은 포트번호 알아보기

DNS와 IP 주소의 관계

  • Domain name
    웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소가 있습니다. 만약 IP 주소가 지번 또는 도로명 주소라면, 도메인 이름은 해당 주소에 위치한 상호로 볼 수 있습니다.
    터미널에서 도메인 이름을 통해 IP 주소를 확인하는 명령어 nslookup으로 도메인의 IP 주소를 확인할 수 있습니다.
    ex) nslookup naver.com

  • DNS (Domain Name System)
    호스트의 도메인 이름을 IP 주소로 변환하거나 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템입니다. 만약 브라우저의 검색창에 naver.com을 입력한다면, 이 요청은 DNS에서 IP 주소(125.209.222.142)를 찾습니다. 그리고 이 IP 주소에 해당하는 웹 서버로 요청을 전달하여 클라이언트와 서버가 통신할 수 있도록 합니다.
    참조 레퍼런스 링크 : DNS 란?

  • 도메인 구조

HTTP의 동작 방식

public IP와 Private IP의 차이점.

공용 및 사설 IP 주소의 주요 차이점은 도달 범위와 연결 대상입니다. 공용 IP 주소 는 검색 하는 모든 정보가 사용자를 찾을 수 있도록 더 넓은 인터넷에서 사용자를 식별합니다. 사설 IP 주소 는 사설 네트워크 내에서 동일한 네트워크 내의 다른 장치에 안전하게 연결하는 데 사용됩니다 .

터미널에서 nslookup 명령을 실행 했을 때.

네트워크 디버깅을 위해 자주 사용되는 명령어로, DNS 서버에 직접 DNS 쿼리를 하고 그 결과를 출력해준다. 이를 통해서 DNS 설정이 정상적인지, 혹은 DNS 서버가 정상적으로 동작하는지, 네트워크가 의도한대로 설정되어 있는지 등을 확인할 수가 있다.
jaemin@jaemin-MS-7C82:~$ nslookup naver.com
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: naver.com
Address: 223.130.200.104
Name: naver.com
Address: 223.130.195.200
Name: naver.com
Address: 223.130.200.107
Name: naver.com
Address: 223.130.195.95

가장 처음으로 출력되는 Server와 Address 정보는 어느 DNS 서버에 쿼리를 요청했는지를 보여준다.
별도로 DNS 서버를 지정하지 않으면 시스템에서 사용중인 DNS 서버에서 정보를 조회한다.

그 다음 Name: naver.com 은 조회한 도메인 이름이며, 그 밑에 Address는 조회한 도메인에 연결된 IP주소이다.

검색창에 http://google.com 을 검색 하면 DNS에서 일어나는 일.

호스트의 도메인 이름을 IP 주소로 변환하거나 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템입니다. 만약 브라우저의 검색창에 http://google.com을 입력한다면, 이 요청은 DNS에서 IP 주소(8.8.8.8)를 찾습니다. 그리고 이 IP 주소에 해당하는 웹 서버로 요청을 전달하여 클라이언트와 서버가 통신할 수 있도록 합니다.

이 처럼, DNS 서버를 이용하면 사람이 8.8.8.8과 같은 IP 주소를 기억하지 않고 호스트 이름만 기억함으로써 웹페이지를 찾을 수 있습니다.

DNS 조회를 8단계로 나누면 다음과 같습니다.

  1. 사용자가 웹 브라우저에 'google.com'을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신합니다.

  2. 이어서 확인자가 DNS 루트 이름 서버(.)를 쿼리합니다.

  3. 다음으로, 루트 서버가, 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버(예: .com 또는 .net)의 주소로 확인자에 응답합니다. google.com을 검색할 경우의 요청은 .com TLD를 가리킵니다.

  4. 이제, 확인자가 .com TLD에 요청합니다.

  5. 이어서, TLD 서버가 도메인 이름 서버(google.com)의 IP 주소로 응답합니다.

  6. 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냅니다.

  7. 이제, google.com의 IP 주소가 이름 서버에서 확인자에게 반환됩니다.

  8. 이어서, DNS 확인자가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답합니다.

DNS 조회의 8단계를 거쳐 google.com의 IP 주소가 반환되면, 이제 브라우저가 IP 주소로 HTTP 요청을 보내고, 해당 IP의 서버가 브라우저에서 렌더링할 웹 페이지를 반환합니다.

profile
DevOps !
post-custom-banner

0개의 댓글