URL & URI / IP & PORT / 도메인과 DNS

지은·2022년 10월 6일
0

네트워크

목록 보기
2/17

URL과 URI

URL(Uniform Resource Locator)

  • 브라우저의 주소창에 입력한 URL은 서버가 제공되는 환경에 존재하는 파일의 위치를 나타낸다.
  • CLI 환경에서 폴더와 파일의 위치를 찾아 이동하듯이, 슬래시(/)를 이용해 서버의 폴더에 진입하거나 파일을 요청할 수 있다.
  • URL은 scheme, hosts, url-path로 구분할 수 있다.
    • scheme : 통신 방식(프로토콜)을 결정한다. ex) 웹 브라우저 : http(s)
    • hosts : 웹 서버의 이름이나 도메인, IP를 사용하며 주소를 나타낸다.
    • url-path : 웹 서버에서 지정한 루트 디렉토리부터 시작하여 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.

URI(Uniform Resource Identifier)

  • URI는 URL을 포함하는 상위개념으로, 일반적으로 URL의 기본 요소인 scheme, hosts, url-path에 더해 query, fragment를 포함한다.
    • query : 웹 서버에 보내는 추가적인 질문
      ex) http://www.google.com:80/search?q=JavaScript
    • fragment : 일종의 북마크 기능을 수행하며 URL에 fragment(#)와 특정 HTML 요소의 id를 전달하면 해당 요소가 있는 곳으로 스크롤을 이동할 수 있다.
명칭설명부분
scheme통신 프로토콜http://
https://
file://
hosts웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IPwww.google.com
127.0.0.1
port웹 서버에 접속하기 위한 통로:80
:443
:3000
url-path웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일의 위치까지의 경로/search
/Users/username/Desktop
query웹 서버에 전달하는 추가 질문q=JavaScript

IP와 PORT

IP 주소 (IP address)

: 네트워크 상에서 특정 PC의 주소를 나타내는 체계
웹 브라우저에서 dot(.)으로 구분 된 네 덩이의 숫자 ex) 172.30.1.254

인터넷에 연결된 모든 PC는 IP 주소 체계에 따라 네 덩이의 숫자로 구분되며, 이 주소 체계를 IPv4(Internet Protocol version 4)라고 한다.

nslookup

: 도메인 이름을 통해 IP 주소를 확인하는 명령어

nslookup google.com

IPv4

  • 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로 지정하면, 모든 기기에서 서버에 접근할 수 있다.

IPv6

2^128개의 IP 주소를 표현할 수 있다.

PORT

: IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)를 의미한다. ex) 127.0.0.1 :3000

  • 이미 사용 중인 포트는 중복해서 사용할 수 없다.
    만약 다른 프로그램에서 3000번 포트(:3000)를 사용 중이라면, 다른 포트 번호(:3001)로 실행한다.
  • 포트 번호는 0 ~ 65535번까지 사용할 수 있다.
  • 그 중에서 0 ~ 1024번까지의 포트 번호는 통신 규약에 따라 이미 정해져 있다.
    • :22 - SSH
    • :80 - HTTP
    • :443 - HTTPS
  • HTTP(:80), HTTPS(:443)와 같이 잘 알려진 포트의 경우 포트 번호를 URI에서 생략할 수 있다.
    하지만 그 외에 잘 알려지지 않은 포트(:3000과 같은 임시포트)는 반드시 포트 번호를 포함해야 한다.
    ex) https://velog.io/@wlwl99:443 ➡️ https://velog.io/@wlwl99

도메인과 DNS

도메인 이름(Domain name)

: 웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소

  • 구글의 도메인 주소 : google.com
  • 구글의 IP 주소 : 142.250.207.78

두 주소 모두 주소창에 입력하면 구글로 이동할 수 있다.
하지만 한 눈에 파악하기 힘든 IP주소 대신 도메인 이름을 사용하면 주소를 보다 간단하게 나타낼 수 있다.

DNS(Domain Name System)

: 호스트의 도메인 이름을 IP 주소로 변환시켜주거나, 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템

  • 네트워크 상에 존재하는 모든 PC는 IP 주소가 있지만, 모든 IP 주소가 도메인 이름을 갖는 것은 아니다.
    로컬 PC를 나타내는 127.0.0.1localhost로 사용할 수 있지만, 그 외의 모든 도메인 이름은 일정 기간동안 대여하여 사용한다.
  • 이렇게 대여한 도메인의 이름과 매칭된 IP 주소를 확인하는 작업을 해주는 서버가 바로 DNS이다.

  • 만약 사용자가 브라우저의 주소창에 도메인 이름(domain.com)을 입력하면, 이 요청은 DNS에서 IP 주소(216.3.128.12)를 찾는다.
  • 그리고 이 IP 주소에 해당하는 웹 서버로 요청을 전달하여 클라이언트와 서버가 통신할 수 있도록 한다.
profile
개발 공부 기록 블로그

0개의 댓글