URL(Uniform Resource Locator)은 인터넷의 리소스를 가리키는 표준이름이다. URL은 전자정보 일부를 가리키고 그것이 어디에 있고 어떻게 접근할 수 있는지 알려준다.

 

인터넷의 리소스 탐색하기

URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리키며, URL을 이용해 사람과 애플리케이션이 인터넷상의 수십억 개의 리소스를 찾고 사용하며 공유할 수 있다. 그리고 URL을 통해 사람이 HTTP 및 다른 프로토콜을 통해 접근할 수 있다. 사용자는 브라우저에 URL을 입력하고 브라우저는 화면 뒤에서 사용자가 원하는 리소스를 얻기 위해 적잘한 프로토콜을 사용하여 메시지를 전달한다.

 

예를들어

 

http://www.joes-hardware.com/seasonal/index-fall.html 이라는 URL을 불러오고 싶다고 가정해보자.

 

  • URL의 첫 부분인 http는 URL의 스킴이다. 스킴은 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다. 이 경우에, URL이 HTTP프로토콜을 사용한다.
  • URL의 두 번째 부분인 www.joes-hardware.com은 서버의 위치이다. 이는 웹 클라이언트가 리소스가 어디에 호스팅 되어 있는지 알려준다.
  • URL의 세 번째 부분인 /seasonal/index-fall.html은 리소스의 경로이다. 경로는  서버에 존재하는 로컬 리소스들 중에서 요청받은 리소스가 무엇인지 알려준다.

URL이 브라우저, 컴퓨터, 서버, 서버 파일 시스템의 어디에 위치하고 어떻게 연결되는지 보여준다.

 

URL은 HTTP 프로토콜이 아닌 다른 가용한 프로토콜을 사용할 수도 있다. 

  • mailto:president@withehouse.gov

는 이메일 주소를 가리키며,

  • ftp://ftp.lots-o-books.com/pub/complete-price-list.xls

는 FTP(File Transfer Protocol) 서버에 올라가 있는 파일을 가리키고 

  • rstp://www.joes-hardware.com:554/interview/cto_video

는 스트리밍을 제공하기 위해 비디오 서버에 호스팅하고 있는 영화를 가리킨다. 이렇게 URL은 인터넷에 있는 어떤 리소스든지 가리킬 수 있다.

 

 

URL 문법

URL로 인터넷상의 모든 리소스를 찾을 수 있지만, 그 리소스들은 다른 스킴(예들들어 HTTP, FTP, SMTP)을 통해 접근할 수 있으며, URL문법은 스킴에 따라서 달라진다. 

 

다른 URL 스킴을 사용한다는 것이 전혀 다른 문법을 사용한다는 뜻일까? 사실을 그렇지 않다.


대부분의 URL 스킴의 문법은 일반적으로 9개의 부분으로 나뉜다.

URL 문법

 

이 모든 컴포넌트를 가지는 URL은 거의 없다. URL의 가장 중요한 세 가지 컴포넌트는 스킴, 호스트, 경로다.

일반적인 URL 컴포넌트

 

예들 들어 http://www.joes-hardware.com:80/index.html 이라는 URL이 있다고 가정했을때

 

스킴은 'http'

호스트는 'www.joes-hardware.com'

포트는 '80'

경로는 'index.html'

이 된다.

 

 

스킴 : 사용할 프로토콜

스킴은 주어진 리소스에 어떻게 접근하는지 알려주는 중요한 정보다. 이는 URL을 해석하는 애플리케이션이 어떤 프로콜을 사용하여 리소스를 요청해야 하는지 알려준다. 위에서 예로 사용한 URL의 스킴은 'http' 이다.

 

스킴 컴포넌트는 알파벳으로 시작해야 하고 URL의 나머지 부분들과 첫 번째 ':' 문자로 구분한다. 스킴 명은 대소문자를 가리지 않기 때문에

'http://www.joes-hardware.com'와 HTTP://www.joes-hardware.com' 는 같다.

 

 

호스트와 포트

애플리케이션이 인터넷에 있는 리소스를 찾으려면, 리소스를 호스팅하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지 알아야 한다.

 

URL의 호스트와 포트 컴포넌트는 그 두 가지 정보를 제공해준다.

 

호스트 컴포넌트는 접근하려고 하는 리소스를 가지고 있는 인터넷상의 호스트 장비를 가리킨다. 해당 값은 위에서와 같이 ('www.joes-hardware.com') 호스트 명이나 IP주소로 제공한다. 

  • http://www.joes-hardware.com:80/index.html
  • http://125.92.228.48:80/index.html

포트 컴포넌트는 서버가 열어놓은 네트워크 포트를 가리킨다. 내부적으로 TCP 프로토콜을 사용하는 HTTP는 기본 포트로 80을 사용한다.

 

 

경로

URL의 경로 컴포넌트는 리소스가 서버의 어디에 있는지 알려준다. 해당 경로는 아래 예와 같이 계층적 파일 시스템 경로와 유사한 구조를 가진다. 

  • http://www.joes-hardware.com:80/seasonal/index-fall.html

이 URL의 경로는 '/seasonal/index-fall.html'로 유닉스 파일 시스템의 파일 경로와 유사하다. 경로는 서버가 리소스의 위치를 찾는데 사용하는 정보다. HTTP URL에서 경로 컴포넌트는 '/' 문자를 기준으로 경로조각으로 나눈다. 

 

 

웹에서 쓰이는 일번 스킴들의 포맷

일반 스킴 포맷

 

 

전 세계의 웹브라우저, 서버, 웹 애플리케이션은 모두 HTTP(Hypertext Transfer Protocol)를 통해 서로 대화한다. HTTP는 현대 인터넷의 공용어이다.

 

HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 지구 반대편에서 오더라도 전송 중 손상되거나 꼬이지 않음을 보장한다. 

 

웹 클라이언트와 서버

웹 콘텐츠는 웹 서버에 존재한다. 웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 보통 HTTP 서버라고 불린다. 웹 서버는 인터넷의 데이터를 저장하고, HTTP 클라이언트가 요청한 데이터를 제공한다.

웹 클라이언트와 웹 서버 예시

클라이언트는 서버에게 HTTP 요청을 보내고 서버는 요청된 데이터를 HTTP 응답으로 돌려준다. 

예를 들어, 'http://www.oreilly.com/index.html" 페이지를 열어볼 때, 웹브라우저는 HTTP 요청을 www.oreilly.com  서버로 보내고, 서버는 요청을 받은 객체 ('/index.html')를 찾고, 성공했다면 그것의 타입, 길이 등의 정보와 함께 HTTP 응답에 실어서 클라이언트에게 보낸다.

 

리소스

웹 서버는 웹 리소스를 관리하고 제공한다. 웹 리소스는 웹 콘텐츠의 원천이다. 가장 단순한 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다. 정적 파일은 텍스트 파일, HTML 파일, 마이크로소프트 워드 파일, 어도비 아크로팻 파일, JPEG 이미지 파일, AVI 동영상 파일, 그 외 모든 종류의 파일을 포함한다.

 

하지만 리소스는 반드시 정적 파일이어야 할 필요는 없다. 카메라에서 라이브 영상을 가져와 보여주거나, 주식 거래, 부동산 데이터베이스 검색 등도 가능하다.

 

요약하자면, 어떤 종류의 콘텐츠 소스도 리소스가 될 수 있다.

 

미디어 타입

인터넷은 수천 가지 데이터 타입을 다루기 때문에, HTTP는 웹에서 전송되는 객체 각각에 신중하게 MIME 타입이라는 데이터 포맷 라벨을 붙인다. MIME (Multipurpose Internet MAil Extensions, 다목적 인터넷 메일 확장)은 원래 각기 다른 전자메일 시스템 사이에서 메시지가 오갈 때 겪는 문제점을 해결하기 위해 설계 되었다.

 

웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙인다. 웹 브라우저는 서버로부터 객체를 돌려받을 때, 다룰 수 있는 객체인지 MIME 타입을 통해 확인한다.

웹 서버는 데이터 콘텐츠와 함께 MIME 타입을 보내준다

MIME 타입은 사선(/)으로 구분된 주 타입과 부 타입으로 이루어진 문자열 라벨이다. 예를들어

  • HTML로 작성된 텍스트 문서는 text/html 라벨이 붙는다.
  • plain ASCII 텍스트 문서는 text/plain 라벨이 붙는다.
  • JPEG 이미지는 image/jpeg가 붙는다.
  • GIF 이미지는 image/gif 가 붙는다.
  • 애플 퀵타임 동영상은 video/quicktime이 붙는다.

등이 있다.

 

 

URI

웹 서버 리소스는 각자 이름을 갖고 있기 때문에, 클라이언트는 관심 있는 리소스를 지목할 수 있다. 서버 리소스 이름은 통합 자원 식별자(uniform resource identifier), 혹은 URI로 불린다. URI는 인터넷의 우편물 주소 같은 것으로, 정보 리소스를 고유하게 식별하고 위치를 저장할 수 있다.

 

예를 들어, '죠의 컴퓨터 가게' 의 웹 서버에있는 이미지 리소스에 대한 URI 라면 이런 식이다.

- http://www.joes-hardware.com/specials/saw-blase.gif

URL은 프로로콜, 서버, 리소스를 명시한다.

위의 그림은 죠의 컴퓨터 가게 서버에 있는 GIF 형식의 톱날 그림 리소스에 대한 URI 가 HTTP 프로토콜에서 어떻게 해석되는지 보여둔다. HTTP는 주어진 URI로 객체를 찾아온다. URI에는 두 가지가 있는데. URLURN이라는 것이다.

 

 

URL

통합 자원 지시자(uniform resource locator, URL)는 리소스 식별자의 가장 흔한 형태다. URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다. URL은 리소스가 정확히 어디에 있고 어떻게 접근할 수 있는지 분명하게 알려준다.

URL의 예

대부분의 URL은 세 부분으로 이루어진 표준 포맷을 따른다.

  • URL의 첫 번째 부분은 스킴(scheme)이라고 불리는데, 리소스에 접근하기 위해 사용되는 프로토콜을 서술한다. 보통 HTTP 프로토콜이다.
  • 두 번째 부분은 서버의 인터넷 주소를 제공한다. (예: www.joes-hardware.com)
  • 마지막은 웹 서버의 리소스를 가리킨다. (예: /specials/saw-blade.gif)

오늘날 대부분의 URI는 URL이다.

 

URN

URI의 두 번째 종류는 유니폼 리소스 이름(uniform resource name, URN)이다.

URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. 위치 독립적인 URN은 리소스를 여기저기로 옮기더라도 문제없이 동작한다. 리소스가 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없다.

 

 

+ Recent posts