✊ 필오의 개발일지
Back to Posts
2019년 8월 9일

URL과 리소스

URL과 리소스

URL의 개념

URL(Uniform Resource Locator)은 인터넷 리소스를 가리키는 표준이름이다.

URL은 전자정보 일부를 가리키고, 그것이 어디에 있고 어떻게 접근할 수 있는지 알려준다.

URL을 사용하면 리소스를 일관된 방식으로 지칭할 수 있다. 대부분의 URL은 동일하게 스킴://서버위치/경로 구조로 이루어져있다.

URL은 URI의 일부

URL은 통합 자원식별자 혹은 URI라고 불리는 더 일반화된 부류의 부분집합이다. URI는 URL과 URN으로 구성된 종합적인 개념이다.


안전한 통합 자원 위치(URL)값을 위해서

1. URL의 구성

<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<플래그먼트>

1.1 스킴

1.2 사용자 정보

기본값

ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu

1.3 호스트

Host

Port

1.4 경로

1.5 파라미터 Matrix parameter

쿼리스트링과 차이점

개인적으로 지금까지 이런 형식의 URL을 본적이 없어서, 검색해보니 이런 형식을 Matrix parameter라고 불리며, 쿼리스트링과의 차이점은 아래와 같다고 나왔다. ( 관련링크 Query vs. Matrix Params  )

아직 proposal state에 존재하며, 웹 표준이 아니라고 한다. (관련 링크 w3-MatrixURIs  )

1.6 쿼리파라미터 (질의 문자열)..

1.7 플래그먼트 fragment

2. 안전한 URL을 위해 고민한 설계자들

URL 설계자들은 이런 고민을 했다.

  1. 모든 인터넷 프로토콜로 URL이 안전하게 전송될 수 있기를 바랬고
  1. 가독성도 있기를 바랬다.

URL 설계자들은 이런 결론을 내렸다.

  1. 특정 문자 사용 금지.
  1. 알파벳 이외의 문자도 포함될 수 있도록 이스케이프 기능 추가

2.1 URL문자 집합

  1. 역사적으로 많은 컴포터 어플리케이션이 US-ASCII 문자 집합을 사용해 왔다.
  2. US-ASCII는 문자를 서식화하고 하드웨어상에서 신호를 주고받기 위해, 7비트를 사용하여 영문 자판에 있는 키 대부분과 몇몇 출력되지 않는 제어 문자를 표현한다.
  3. 미국인들에게는 편리하지만, 유럽언어나 수백가지 비 라틴계 언어들에 존재한는 변형된 문자들까지 US-ASCII가 지원하지 않는다.
  4. URL이 특정 이진데이터를 포함해야하는 경우도 있다.

이런 경우를 지원하기 위해서 이스케이프 문자열을 쓸 수 있게 설계하였다.

2.2 인코딩 체계

URL에 있는 안전하지 않은 문자들을 표현할 수 있는 인코딩 방식이 고안되었다. 인코딩은 이스케이프 문자로 바꿔준다.

예시

2.3 문자 제한

  1. 몇몇 문자는 URL에서 특별한 의미로 예약되어있다.
  2. 어떤 문자는 US-ASCII의 출력 가능한 문자 집합에 포함되어있지 않다.
  3. 몇몇 인터넷 게이트웨이와 프로토콜에서 혼동되는 것으로 알려져 있어 사용을 지양하고 있다.

URL 예약어

게이트웨이에서 불안하게 다루기 때문에 제한

US-ASCII 관련

3. 편리한 URL 사용을 위한 상황별 단축 URL

웹 클라이언트는 몇몇 단축 URL을 인식하고 사용한다.

  1. 상대URL은 리소스 안에 있는 리소스를 간결하게 기술하는데 사용
  2. URL확장은 사용자가 기억하고 있는 URL 일부를 입력하면 나머지 부분을 자동으로 입력해준다.

3.1 상대 URL

URL은 2가지로 나뉜다.

브라우저 같은 어플리케이션은 상대URL과 절대URL 간에 상호 변환을 할 수 있어야 한다.

기저 URL

기저 URL 찾는 방법

  1. 리소스에서 명시적으로 제공 <base> HTML 태그를 기술할 수 있다. (base )
  2. 리소스를 포함하고 있는 기저 URL 해당 리소스의 URL을 기저 URL로 쓸 수 있다.
  3. 기저URL이 없는 경우 불안전하거나 깨진 URL일 수도 있다.

상대 참조 해석하기

상대 URL과 기저을 각각의 컴포넌트 조각으로 나누는 것이다. URL분해하기 = URL 파싱하기 변환을 위해서 특정 알고리즘을 사용한다. 이 알고리즘은 상대URL을 절대URL 형태로 변환한다.

3.2 URL 확장

  1. 호스트명 확장
  1. 히스토리 확장

4. 접근하는 방법의 종류(스킴의 종류)

스킴설명
httpHTTP스킴이다. 포트값이 생략되어 있으면 기본값은 80이다.http://feel5ny.github.io
https암호화하기 위해 넷스케이프에서 개발한 보안 소켓 계층(SSL)을 사용한다. 기본포트는 443https://feel5ny.github.io
mailto이메일 주소를 가리킨다. RFC 822mailto:joe@joes-hardware.com
ftp파일 전송 프로토콜. FTP는 웹과 URL이 출현하기 전부터 있었다.ftp://anonymous:joe%40joes-hardware.com@prep.ai.mit.edu:21/pub/gnu/
rtsp, rtspu실시간 스트리밍 프로토콜(Real Time Streaming Protocol), rtspu에서 u는 리소스를 읽기 위해서 UDP 프로토콜이 사용됨을 뜻한다.rtsp://www.joes-hardware.com:554/interview/cto_video
file주어진 호스트 기기에서 바로 접근할 수 있는 파일들을 나타낸다.file//OFFICE-FS/policies/casual-fridays.doc
newsRFC 1036에 정의된 바와 같이 특정 문서나 뉴스 그룹에 접근하는데 사용한다.news:rec.arts.startrek
telnet대화형 서비스에 접근하는데 사용한다.telnet://slurp:webhound@joes-hardware.com:23/

참고자료

PreviousHTTP 메세지 - 개요
NextHTTP 개관

Related

© 2025 Felix