요약

  • 상대 참조는 이미 알려진 기준이 제공하는 스킴, 권한(authority) 또는 경로 정보를 생략하여 반복을 줄이고 문서 집단이 함께 이동할 수 있게 했습니다.
  • 해석은 결정론적 구문 변환입니다. 절대 기준을 선택하고, 참조 형태에 따라 구성 요소를 상속하거나 대체하고, 경로를 병합하고, 완전한.및..세그먼트를 제거한 뒤 대상을 재구성합니다.
  • 상대 참조는 그 자체로 전역적으로 안정한 식별자가 아닙니다. 기록, 서명, 감사는 유효 기준 또는 해석된 절대 대상을 보존해야 합니다.

문서가 이미 더 많이 알고 있었기에 링크는 짧아질 수 있었다

절대 위치 지정자는 많은 것을 반복합니다. 하나의 컬렉션 내부의 모든 링크는 동일한 스킴, 네트워크 위치, 그리고 대부분 동일한 경로를 닮고 있을 수 있습니다. 그 링크들을 담고 있는 문서는 이미 어딘가에서 도착했고, 그 위치가 맥락을 제공합니다.

RFC 1630, 즉 Tim Berners-Lee의 1994년 초기 URI 제안은 자신의 URI가 잘 정의된 객체 안의 부분 형태를 기술했습니다. 그 이점은 문자 절약을 넘어섰습니다. 관련 객체들은 로컬 참조를 사용하고, 모든 연결을 다시 쓰지 않고도 나중에 그룹으로 이동할 수 있었습니다. 상위 수준의 명명 변경은 그 아래 문서들에게는 보이지 않게 유지되었습니다.

그 절약은 조건부였습니다. RFC 1630은 참조가 잘 통제된 맥락 밖으로 이동할 때는 완전한 형태를 사용해야 한다고 경고했습니다. 짧은 링크는 생략한 정보를 담고 있지 않습니다. 그 이식성은 기준이 함께 이동하거나, 읽히는 지점에서 재현 가능하게 확립되는 데 의존합니다.

초기 규칙은 이미 경로 계층을 공유 구문으로 다뤘습니다. 슬래시는 수준을 나눴고, 완전한.및..요소는 현재 수준과 상위 수준을 가리켰습니다. 후행 슬래시는 빈 마지막 세그먼트를 나타내기 때문에 중요했습니다. 디렉터리 같은 위치에서 끝나는 기준과 자원 같은 위치에서 끝나는 기준은 동일한 경로를 빌려주지 않았습니다.

상대 URL은 표준 트랙의 변환이 되었다

1995년 6월에 발표된RFC 1808은 상대 URL을 절대 기준 URL에 대한 압축된 위치로 정의했습니다. 이 문서는 상속을 명시적으로 만들었습니다. 기준은 스킴, 네트워크 위치, 경로의 일부를 제공할 수 있고, 참조는 바뀌는 부분만 제공합니다.

이것은 텍스트 연결이 아니었습니다. 스킴으로 시작하는 참조는 이미 절대입니다. 네트워크 위치로 시작하는 참조는 권한을 대체합니다. 슬래시로 시작하는 참조는 루트부터의 경로를 대체합니다. 단순 상대 경로는 기준 경로의 마지막 부분을 대체하거나 확장합니다. 질의와 프래그먼트는 각자의 구성 요소 규칙을 따랐습니다.

이 구분은 이동 중에 의미를 보호했습니다. 문서 디렉터리가 로컬 계층을 유지한 채 한 호스트나 접두사에서 다른 곳으로 이동하면, 그 상대 연결들은 새 기준을 따라갑니다. 절대 연결은 계속 이전 권한을 가리킵니다. 어느 형태가 보편적으로 더 나은 것은 아니며, 각각 다른 의존성을 선언합니다.

HTML은 문서가 빠진 맥락을 스스로 운반하는 방법을 제공했다

1995년 HTML 2.0 사양인RFC 1866은 상대 주소 지정을 보통 하이퍼텍스트의 일부로 만들었습니다. 앵커, 링크, 이미지, 입력, 폼은 절대 또는 상대 대상을 가리킬 수 있었습니다.

선택적BASE요소는 문서가 맥락 밖에서 읽힐 때 그 참조들을 해석하기 위한 절대 주소를 제공할 수 있었습니다. 없으면, 기준은 문서의 검색과 연관된 상대 URL 규칙을 따랐습니다. 이는 저장되거나 운반되거나 캡슐화된 콘텐츠가 원래의 링크 맥락을 보존할 수 있게 만들었습니다.

이는 또한 통제를 집중시켰습니다. 문서에 삽입된 하나의 기준이 모든 상대 대상을 다시 해석할 수 있었습니다. 이 메커니즘은 동일한 접두사의 반복을 피할 수 있다는 점에서 가치가 있었지만, 정확히 그런 이유로 그 접두사 하나를 바꾸면 링크 그래프 전체에 영향을 미쳤습니다.

따라서 기준은 표시 메타데이터가 아닙니다. 그것은 자원 식별에 대한 입력입니다. 이를 제거하거나 대체하거나 다른 단계에서 적용하는 시스템은 단순히 문서를 다시 포맷하는 것이 아닙니다.

일반 URI 구문은 상속을 구성 요소별로 분리했다

1998년에 발표된RFC 2396은 해석을 URL에서 URI 참조로 일반화했습니다. 그 연산은 구별되지 않은 문자열이 아니라 파싱된 구성 요소에서 시작합니다. 스킴, 권한, 경로, 질의, 프래그먼트는 참조 형태에 따라 제공되거나 상속되거나 대체될 수 있습니다.

상대 경로의 경우, 해석기는 기준 경로의 마지막 세그먼트를 제거하고 참조 경로를 덧붙인 뒤 점 세그먼트를 처리합니다. 그렇기 때문에 기준의 마지막 슬래시는 계속 물질적입니다. 어떤 세그먼트가 마지막으로 간주되는지를 바꾸기 때문입니다.

이 경로 연산이 모든 URI를 파일 시스템으로 만들지는 않습니다. 완전한 점 세그먼트는 계층적 참조 해석 안에서 정의된 역할을 가집니다. 다른 문자들 사이에 점 두 개를 포함하기만 하는 세그먼트는 여전히 보통 세그먼트 데이터입니다. 스킴별 처리기는 추가 의미를 부과할 수 있지만, 일반 구문은 그것을 추론하지 않습니다.

또한 해석은 서버에 접촉하지 않습니다. 해석은 대상 식별자를 생성합니다. 역참조, 리디렉션, 인증, 자원의 존재는 이후의 별개 결정입니다.

현재의 계약은 해석 전에 하나의 기준을 선택한다

현재의 일반 URI 구문인RFC 3986은 프래그먼트만 있는 좁은 경우를 제외하고 상대 참조에 알려진 기준을 요구합니다. 기준은 절대여야 하며, 그 역할을 수행하기 전에 프래그먼트는 제거됩니다.

표준은 기준 소스에 우선순위를 부여합니다. 콘텐츠에 삽입된 기준이 참조에 가장 가깝습니다. 없으면 캡슐화 엔티티가 하나를 제공할 수 있습니다. 그다음은 검색 URI이며, 그다음은 응용 프로그램 의존적 기본값입니다. 이 계층적 순서는 여러 가능한 맥락을 하나의 유효 입력으로 만듭니다.

그다음 참조 형태가 상속을 통제합니다. 스킴을 가진 참조는 자신의 주요 구성 요소를 제공합니다.//네트워크 경로 형태는 스킴을 빌리지만 권한은 스스로 제공합니다. 선행/는 스킴과 권한을 빌리면서 경로를 대체합니다. 상대 경로는 기준 경로의 마지막 세그먼트를 제외한 나머지와 병합하되, 정의된 권한이 빈 경로를 가질 때는 병합이/로 시작합니다.

빈 참조 경로는 기준 경로를 상속합니다. 질의가 제공되지 않으면 기준 질의도 상속합니다. 참조의 프래그먼트가 대상 프래그먼트가 됩니다. 이것들은 구성 요소 수준의 결정이지, 빈 텍스트가 언제나 "아무것도 하지 않음"을 의미한다는 일반 규칙이 아닙니다.

점 세그먼트는 해석 중의 지시문이었지, 영속적인 수준이 아니었다

RFC 3986은 경로 추출과 병합 이후remove_dot_segments를 지정합니다. 완전한.세그먼트는 영속적인 수준에 기여하지 않습니다. 완전한..는 출력에서 앞선 세그먼트가 존재할 때 그것을 제거합니다. 초과된 상위 세그먼트는 상상 속 보편적 파일 시스템 루트를 넘어서 탈출하는 대신 알고리즘에 따라 제거됩니다.

이 처리는 구문적입니다. 서버에 디렉터리 존재를 묻지 않고 공통의 계층적 결과를 보존합니다. 구현은 사양의 문자열 버퍼 대신 스택을 사용할 수 있지만, 수용된 입력은 동일하게 재구성된 경로를 산출해야 합니다.

동일 문서 판정도 해석 이후에 이루어집니다. 프래그먼트만으로 이루어진 표면 형태가 명백한 경우이지만, 현재 규칙은 해석된 절대 대상을 기준과 비교합니다. 참조가 얼마나 짧아 보이는지만으로 동일성을 부여하지 않습니다.

이식성은 독립이 아니라 통제된 의존이었다

상대 링크는 내부 구조가 단일 영구 호스트나 접두사를 명명하지 않았기 때문에 문서 집합을 교체 가능하게 만들었습니다. 이는 중앙 링크 레지스트리 없이 저자에게 로컬 자율성을 주었습니다. 그러나 링크는 결코 맥락 자유적이지 않았습니다. 그 빠진 주소는 문서, 컨테이너, 검색 과정 또는 응용 프로그램이 통제하는 기준에서 왔습니다.

이 구분은 렌더링 밖에서도 중요합니다.../source만 담은 출처 기록은 원래 기준에서 분리된 뒤에는 공개 출처를 확립할 수 없습니다. 짧은 텍스트는 커버하되 유효 기준은 커버하지 않는 서명된 매니페스트는 대상의 일부를 미서명으로 남겨둡니다. 해석된 주소만 기록하는 감사 로그는 어떤 맥락적 결정이 그것을 산출했는지 보여줄 수 없습니다.

내구적인 증거는 한 쌍입니다. 원래 참조와 선택된 기준, 그리고 조치가 이루어졌다면 해석된 대상까지입니다.

출처

이 사양들은 구문, 역사적 근거, 알고리즘을 확립합니다. 이것들은 현재 브라우저의 특이 동작, 응용 프로그램 라우팅, 콘텐츠 보안 정책 또는 실제 배포의 안전성을 확립하지 않습니다.