URL

URL

1. URL

URL이란?

URL(Uniform Resource Locator)은 특정 웹 자원을 구별할수 있는 고유한 주소이다. URL은 웺 사이트뿐만 아니라 HTML, 문서, 이미지, 동영상 등 인터넷에 존재하는 모든 자원을 나타낼 수 있다.

URL 구조

http://www.example.com:80/path/to/myfile.html?key1=value&key2=value2

위와 같은 주소가 있다고 가정하자.

[프로토콜(protocol)]

  • http
  • 대부분의 URL이 http:// 로 시작하는 이유는 웹 통신에 사용하는 프로토콜이 HTTP이기 때문이다
  • 최근 보안이 더 강화된 HTTPS 프로토콜을 더 많이 사용하고 있기 때문에 https:// 로 시작하는 주소도 많이 볼 수 있다.

[호스트주소]

  • www.example.com
  • 접근할 서버 컴퓨터의 주소를 의미한다.
  • 원래는 컴퓨터마다 가진 고유 번호인 IP 주소가 들어가야 하는데, 보통은 기억하기 쉬운 문자 형태를 사용한다.
  • 그 이유는 대부분 IP 주소 대신 문자 형태의 주소인 도메인을 사용하기 때문이다.

[포트(port)]

  • :80
  • 웹 서버 안에서 특정 자원에 접근하기 위해 사용하는 관문을 가리키며, 이 포트를 통해서만 통신할 수 있다.
  • 포트 번를 입력하지 않으면 기본적으로 프로토콜이 가진 기본 포트 번호가 적용된다.
  • HTTP를 사용하는 URL의 포트 번호 : 80
  • HTTPS를 사용하는 URL의 포트 번호 : 443

[경로(path)]

  • /path/to/myfile.html
  • 해당 자원에 대한 구체적인 위치
  • myfile.html은 웹 서버의 path 폴더 안에 있는 to 폴더에 있다.
  • 웹 서버 내 자원의 경로를 그대로 보여주면, 사용자가 허용되지 않은 자원에 접근할 수 있는 문제가 발생한다.
  • 그래서 현재는 가상의 경로를 만들어 경로별로 보여줄 자원을 정의한다.
    • ex) /path/to/myfile.html -> /myfile
    • /myfile 이라는 경로에 오면 /path/to 폴더에 있는 myfile.html 파일을 전달한다.

[파라미터]

  • ?key1=value&key2=value2
  • 웹 서버에 전달해야 할 문구
  • URL은 영문자와 숫자를 제외한 대부분의 문자가 허용되지 않기 때문에, 인코딩을 하여 URL을 나타낸다.

인코딩 : 허용하지 않는 문자를 적절한 기호로 변환

디코딩 : 변환된 문자를 다시 원래의 형태로 되돌리는 것

2. URL과 URI

URI

URI는 URL을 포함하는 개념이다.

URI(Uniform Resource Identifier)는 자원을 구분할 수 있는 유일한 식별자를 의미한다.

예를 들어서, 도서관에서 책을 찾을 때 ‘802반 서가 두 번째 줄 왼쪽에서 세 번째’ 라는 위치로 찾을 수도 있고 - URL

책 고유번호인 ‘123-45-6789-012-3’ 로도 찾을 수 있다. - URN(Uniform Resource Name) : 해당 자원의 고유한 이름

이 두 가지를 모두 뜻하는 것이 URI이다.

URL을 IP로 변환하는 DNS

도메인과 IP 주소

인터넷 통신이 가능한 장치에는 각각을 식별할 수 있는 특수 번호인 IP 주소가 존재한다. IP 주소는 원하는 웹 서버에 접근하기 위해 꼭 필요한 정보이다.

IP 주소를 몰라도 특정 웹 사이트 주소에 쉽게 접근할 수 있도록 기억하기 쉬운 형태의 호스트 이름이 도메인이다.

도메인의 구조

www.google.com

  • 1차 도메인(최상위 도메인) : com
    • 각국을 대표하는 국가 코드 최상위 도메인(ccTLD) : kr, us, uk 등
    • 일반 최상위 도메인(gTLD) : com, net
  • 2차 도메인 : google
  • 3차 도메인 : www

DNS

특정 사이트에 접근하기 위해서는 해당 웹 페이지를 관리하는 웹 서버의 IP 주소가 필요하다. DNS가 없던 시절에는 각 컴퓨터 안에 IP 주소와 호트의 이름을 연결한 hosts.txt 파일을 넣어두고 사용했다.

인터넷이 확장되고 호스트의 숫자도 늘어나자 호스트 정보를 각 컴퓨터가 아닌, 특정 서버에 모아 관리할 필요가 생겼고 DNS가 탄생했다.

DNS는 도메인과 IP 주소를 서로 변환해주는 역할을 하는 시스템이다. 변환 시스템을 운영하는 서버를 DNS 서버(네임 서버)라고 한다.

DNS에서 원하는 IP 주소 찾기

DNS 서버는 여러 대를 두며 서버별로 담고 있는 도메인 정보와 역할이 조금씩 다르다.

DNS에서 원하는 IP 주소 찾는 방법

  1. 도메인 입력 (www.google.com)
  2. 제일 가까운 DNS 서버로 도착 - 로컬 DNS 서버로, KT/SKT/LG U+ 와 같이 일반적으로 사용하는 통신사의 DNS 서버
  3. 해당 도메인에 대한 IP 주소가 있다면, 브라우저에 IP 주소 전달
  4. 해당 도메인에 대한 IP 주소가 없다면, 루트 DNS 서버에 방문

루트 DNS 서버

전 세계에 오직 13대만 있는 특수한 서버로, 최상위 도메인을 관리하는 DNS 서버의 정보를 담고 있다.

  1. 루트 DNS 서버는 해당 도메인의 최상위 도메인(.com)을 관리하는 서버의 정보 제공
  2. 해당 서버는 해당 도메인을(.goole.com) 관리하는 DNS 서버 정보를 제공
  3. 해당 도메인을 관리하는 DNS 서버에게 IP 주소 요청

한 번 IP 주소를 찾고 나면 로컬 DNS 서버에서 해당 도메인 정보를 임시로 저장하고, 사용자의 PC에 저장해 다음 요청부터는 미리 PC에 저장한 IP 주소로 연결할 수 있게 설계되어 있다.