Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워킹

URL(Uniform Resource Locator)이란? 인터넷 주소의 개념, 구조, 문법 규칙까지 총정리

URL이란 무엇인가?

URL(Uniform Resource Locator)은 인터넷상에 존재하는 파일의 위치를 식별하는 방식입니다. URL을 사용하면 웹사이트를 열 수 있을 뿐만 아니라, 서버에 호스팅된 이미지, 동영상, 소프트웨어 프로그램 등 다양한 유형의 파일도 다운로드할 수 있습니다.

컴퓨터에 저장된 로컬 파일을 여는 것은 더블클릭만 하면 되는 간단한 일입니다. 하지만 웹 서버처럼 원격 컴퓨터에 있는 파일을 열려면, 웹 브라우저가 어디를 찾아가야 할지 알 수 있도록 URL을 사용해야 합니다. 예를 들어 웹 페이지를 구성하는 HTML 파일을 열려면, 사용 중인 브라우저 상단의 주소 표시줄에 해당 URL을 입력하면 됩니다.

URL의 다른 이름들

Uniform Resource Locator는 보통 URL로 줄여 부르지만, HTTP 또는 HTTPS 프로토콜을 사용하는 URL을 지칭할 때는 '웹사이트 주소(website address)'라고도 합니다.

URL은 일반적으로 각 글자를 개별적으로 발음합니다(u-r-l, '얼(earl)'이 아님). 참고로 URL은 과거에는 Universal Resource Locator의 약자였으나, 1994년에 Uniform Resource Locator로 변경되었습니다.

URL 예시

구글 웹사이트에 접속할 때 입력하는 URL은 다음과 같이 익숙한 형태일 것입니다.

https://www.google.com

이 전체 주소가 바로 URL입니다. 다른 예로 아래와 같은 형태도 있습니다.

https://www.lifewire.com
https://www.microsoft.com

심지어 이미지 파일의 직접 URL을 열 수도 있습니다. 예를 들어 다음 URL은 위키백과 사이트에 있는 구글 로고 이미지로 연결됩니다.

https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/220px-Google_2015_logo.svg.png

이 주소는 https://로 시작하고 위의 예시들과 비슷한 형태를 띠지만, 웹사이트 서버 내에서 이미지가 실제로 위치한 정확한 폴더와 파일을 가리키기 위해 수많은 텍스트와 슬래시가 추가된 것을 볼 수 있습니다.

같은 개념은 공유기(라우터) 로그인 페이지에 접속할 때도 적용됩니다. 설정 페이지를 열기 위해 공유기의 IP 주소가 URL로 사용됩니다.

대부분의 사람들은 Firefox나 Chrome 같은 웹 브라우저에서 사용하는 이러한 URL에 익숙하지만, URL이 필요한 곳이 브라우저만은 아닙니다.

위의 모든 예시는 HTTP 프로토콜을 사용해 웹사이트를 여는 경우이며, 이것이 일반적으로 가장 많이 접하는 방식입니다. 하지만 FTP, TELNET, MAILTO, RDP 같은 다른 프로토콜도 사용할 수 있습니다. URL은 하드 드라이브에 있는 로컬 파일을 가리킬 수도 있습니다. 각 프로토콜은 목적지에 도달하기 위한 고유한 문법 규칙을 가질 수 있습니다.

URL의 구조

URL은 여러 섹션으로 나눌 수 있으며, 각 부분은 원격 파일에 접근할 때 특정한 역할을 수행합니다.

HTTP와 FTP URL은 protocol://hostname/fileinfo 구조로 동일하게 구성됩니다. 예를 들어 URL을 통해 FTP 파일에 접속하는 형태는 다음과 같습니다.

FTP://servername/folder/otherfolder/programdetails.docx

HTTP 대신 FTP를 사용했다는 점 외에는 웹에서 흔히 볼 수 있는 다른 URL과 같아 보입니다.

이제 다음 URL을 HTTP 주소의 예로 들어 각 구성 요소를 살펴보겠습니다.

https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html
  • https — 통신 대상 서버의 유형을 정의하는 프로토콜입니다(FTP가 프로토콜인 것과 같은 원리).
  • security — 해당 특정 웹사이트에 접속할 때 사용되는 호스트명입니다.
  • googleblog — 도메인 이름입니다.
  • com — 최상위 도메인(TLD)이라고 부르며, 그 외에 .net, .org, .co.uk 등이 있습니다.
  • /2018/01/ — 웹 페이지나 파일을 체계적으로 정리하는 디렉터리입니다. 웹사이트 파일을 보관하는 웹 서버에서는 URL이 지정하는 파일을 찾기 위해 클릭해 들어가는 실제 폴더에 해당합니다.
  • todays-cpu-vulnerability-what-you-need.html — URL이 최종적으로 가리키는 실제 파일입니다. HTML 파일이 아닌 이미지, 오디오 파일 등 다른 유형의 파일을 로드하려는 경우 URL은 해당 파일 확장자(PNG, MP3 등)로 끝납니다.
  • security.googleblog.com — 이 전체를 묶어 완전 정규화 도메인 이름(FQDN, Fully Qualified Domain Name)이라고 합니다.

URL 문법 규칙

URL에는 숫자, 영문자, 그리고 다음과 같은 특수 문자만 사용할 수 있습니다: ()!$-'_*+.

이 외의 다른 문자는 인코딩(프로그래밍 코드로 변환) 과정을 거쳐야만 허용됩니다.

일부 URL에는 추가 변수와 구분하는 매개변수(parameter)가 포함되어 있습니다. 예를 들어 구글에서 'lifewire'를 검색하면 다음과 같은 URL이 생성됩니다.

https://www.google.com/search?q=lifewire

여기서 물음표(?)는 구글 서버에 호스팅된 특정 스크립트에 명령을 전달하여 사용자 지정 결과를 얻고자 함을 알려주는 역할을 합니다.

구글의 검색 실행 스크립트는 URL에서 ?q= 뒤에 오는 내용을 검색어로 식별하도록 설계되어 있습니다. 따라서 해당 위치에 입력된 텍스트가 구글 검색 엔진의 검색어로 사용됩니다.

YouTube에서 'best cat videos'를 검색한 URL에서도 유사한 동작을 확인할 수 있습니다.

https://www.youtube.com/results?search_query=best+cat+videos

URL에는 공백이 허용되지 않지만, 일부 웹사이트는 + 기호를 사용합니다. 위의 구글과 YouTube 예시에서 이를 확인할 수 있습니다. 또 다른 방식으로는 공백의 인코딩 값인 %20을 사용하기도 합니다.

일부 URL은 상황에 따라 매개변수 형식이 달라질 수 있습니다. 좋은 예가 YouTube 동영상에 타임스탬프를 추가하는 경우입니다. 어떤 링크는 앰퍼샌드(&)를 필요로 하고, 어떤 링크는 물음표를 사용합니다.

URL은 앵커(anchor)도 사용할 수 있습니다. 앵커는 URL 맨 끝에 위치하며, 링크를 클릭했을 때 해당 페이지의 어느 부분으로 이동할지를 지정합니다. 앵커는 웹 페이지에 링크를 추가할 때 생성되며 숫자 기호(#)를 사용합니다. 다음은 위키백과 항목에서 앵커가 페이지의 다른 부분으로 이동시키는 예시입니다.

https://en.wikipedia.org/wiki/Lifewire#History

여러 변수를 사용하는 URL은 물음표 뒤에 하나 이상의 앰퍼샌드를 사용합니다. 다음은 Amazon.com에서 Windows 10을 검색한 예시입니다.

https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=windows+10

첫 번째 변수 url 앞에는 물음표가, 다음 변수 field-keywords 앞에는 앰퍼샌드가 위치합니다. 이후 추가되는 변수들도 마찬가지로 앰퍼샌드 앞에 옵니다.

URL의 일부는 대소문자를 구분합니다. 특히 도메인 이름 이후의 모든 요소(디렉터리와 파일 이름)가 그 대상입니다. 위에서 분해한 구글 예시 URL에서 'need'를 대문자로 바꿔 URL 끝을 todays-cpu-vulnerability-what-you-NEED.html로 만들어 보면 직접 확인할 수 있습니다. 해당 페이지를 열려고 하면 서버에 그런 파일이 존재하지 않기 때문에 페이지가 로드되지 않습니다.

URL에 대해 더 알아두면 좋은 것들

URL이 JPG 이미지처럼 웹 브라우저가 바로 표시할 수 있는 파일을 가리키는 경우, 굳이 컴퓨터에 다운로드하지 않아도 확인할 수 있습니다. 반면 PDF, DOCX 파일, 특히 EXE 파일(및 그 외 많은 파일 유형)처럼 브라우저에서 기본적으로 표시되지 않는 파일의 경우에는 다운로드하라는 안내가 표시됩니다.

URL을 사용하면 실제 IP 주소를 몰라도 서버에 손쉽게 접근할 수 있습니다. URL은 즐겨찾는 웹사이트를 기억하기 쉬운 이름으로 만들어 주는 것과 같습니다. 이처럼 URL을 IP 주소로 변환해 주는 역할을 하는 것이 바로 DNS 서버입니다.

일부 URL은 매우 길고 복잡하기 때문에 링크를 클릭하거나 브라우저 주소 표시줄에 복사·붙여넣기 하는 것이 좋습니다. URL에 오류가 있으면 400번대 HTTP 상태 코드 오류가 발생할 수 있으며, 가장 흔한 유형은 404 오류입니다.

서버에 존재하지 않는 페이지에 접속하려고 하면 404 오류가 발생합니다. 이 오류는 너무나 흔해서 일부 웹사이트에서는 독특하고 유머러스한 맞춤형 404 페이지를 제공하기도 합니다. 정상적으로 로드되어야 할 웹사이트나 온라인 파일에 접속하는 데 문제가 있다면 URL 자체를 점검해 보는 것이 좋습니다.

대부분의 URL은 포트 번호를 지정할 필요가 없습니다. 예를 들어 google.com을 열 때 https://www.google.com:80처럼 끝에 포트 번호를 붙일 수 있지만 필수는 아닙니다. 만약 웹사이트가 8080 포트에서 운영된다면, 포트 번호를 변경하여 해당 페이지에 접속할 수 있습니다.

기본적으로 FTP 사이트는 21번 포트를 사용하지만, 22번 또는 다른 포트로 설정된 경우도 있습니다. FTP 사이트가 21번 포트를 사용하지 않는다면 서버에 올바르게 접속하기 위해 사용 중인 포트를 반드시 지정해야 합니다. 이 원칙은 접속 프로그램이 기본값으로 가정하는 포트와 다른 포트를 사용하는 모든 URL에 동일하게 적용됩니다.

자주 묻는 질문(FAQ)

URL을 차단할 수 있나요?

네, 가능합니다. 웹사이트 차단 방법은 사용 중인 기기와 운영체제에 따라 다릅니다. 대부분의 웹 브라우저에서 특정 사이트를 차단할 수 있으며, 공유기 설정을 통해 전체 네트워크 차원에서 URL을 차단할 수도 있습니다.

바니티 URL(vanity URL)이란 무엇인가요?

바니티 URL은 길고 복잡한 원래 URL로 리디렉션되는 짧고 기억하기 쉬운 URL입니다. 바니티 URL을 설정하려면 사용자 지정 도메인을 지원하는 URL 단축 서비스를 이용하면 됩니다.

콜백 URL(callback URL)이란 무엇인가요?

콜백 URL은 다른 웹사이트나 프로그램에서 작업을 완료한 후 사용자가 리디렉션되는 페이지를 말합니다. 예를 들어 웹사이트에서 상품을 구매한 후 제3자 결제 시스템으로 이동했다면, 결제가 완료된 뒤 원래 사이트의 콜백 URL(보통 확인 페이지)로 이동하게 됩니다.

HTTP와 HTTPS의 차이점은 무엇인가요?

HTTP와 HTTPS의 가장 큰 차이점은 HTTPS가 더 안전하다는 것입니다. 따라서 보안이 필요한 데이터를 전송하는 웹사이트에서는 항상 HTTPS를 사용해야 합니다.