URI 조각

URI fragment

컴퓨터 하이퍼텍스트에서 URI 조각은 다른 기본 리소스에 종속된 리소스를 가리키는 일련문자열을 가리킨다.1차 자원은 통일 자원 식별자(URI)로 식별되며, 단편 식별자는 하위 자원을 가리킨다.

해시 마크에 의해 도입된 단편 식별자는 문서의 URL의 선택적 마지막 부분이다.그것은 일반적으로 그 문서의 일부를 식별하는 데 사용된다.일반 구문은 RFC 3986에 명시되어 있다.URI의 해시 마크 구분자는 단편 식별자의 일부가 아니다.

기본 사항

URI에서 해시 마크#URL 끝 부근에 선택적 파편을 소개한다.URIs에 대한 일반 RFC 3986 구문 또한 물음표로 도입된 선택적 쿼리 부분을 허용한다.질의와 파편이 있는 URI에서는 그 파편이 질의에 따른다.쿼리 부분은 URI 방식에 따라 달라지며 서버가 평가한다(예:http:다른 쿼리와 달리 지원ftp:. 단편은 문서 MIME 유형에 따라 달라지며 클라이언트(웹 브라우저)에 의해 평가된다.클라이언트는 문서를 검색할 때 URI 파편을 서버로 보낼 수 없으며, 로컬 응용프로그램(아래 참조)의 도움 없이는 HTTP 재조정에 참여할 수 없다.[1]

로 끝나는 URI#일반 구문에 의해 허용되며 빈 조각의 일종이다.MIME 문서 유형(예:text/html또는 이 구문론적으로 합법적인 구조와 일치하는 빈 식별자는 허용되지 않는다.웹 브라우저는 일반적으로 문서의 맨 위에 빈 조각을 표시한다.

조각 식별자는 URI의 나머지 부분과 다르게 기능한다. 조각 식별자의 처리 과정은 일반적으로 서버가 MIME 유형을 결정하는 데 도움이 되고 MIME 유형이 조각의 처리를 결정하지만 웹 서버의 참여 없이 전적으로 클라이언트 쪽이다.에이전트(예: 웹 브라우저)가 웹 서버에서 웹 리소스요청하면 에이전트는 URI를 서버로 전송하지만 조각은 전송하지 않는다.대신, 에이전트는 서버가 자원을 송신할 때까지 기다린 다음, 문서 유형과 단편 값에 따라 자원을 처리한다.[2]

HTML 웹 페이지에서 에이전트는 다음이 포함된 HTML 태그로 식별된 앵커를 찾을 것이다.id=또는name=조각 식별자와 동일한 속성.

  • MIME용 URI에서text/html등의 페이지http://www.example.org/foo.html#bar그 파편은 와의 원소를 가리킨다.id="bar".
    • 그래픽 웹브라우저는 일반적으로 파편 ID로 식별된 요소의 상단이 뷰포트의 상단과 정렬되도록 페이지로 스크롤하여 콘텐츠 테이블과 퍼머링크에서 파편 식별자를 사용하는 경우가 많다.
    • 식별된 요소의 외관은 다음을 통해 변경할 수 있다.:target CSS 유사문헌; 위키피디아는 이것을 선택한 참조를 강조하기 위해 사용한다.특히 CSSdisplay: block콘텐츠가 대상일 경우에만 콘텐츠를 표시하는 데 사용할 수 있으며, 그렇지 않을 경우 다음에 의해 숨길 수 있다.display: none.
    • 타락한 자.name속성(일부 요소에만 해당)은 이제 구식 브라우저에서 유사한 목적을 가지고 있었다.있다면name그리고id동일해야 한다.
  • XHTML 조각을 포함한 모든 XML 문서 유형에서xml:id또는 그와 비슷한id속성이 다음에 따르다Name-문자, 밑줄 또는 콜론으로 시작하십시오.특히 그들은 숫자나 하이픈으로 시작할 수 없다.[3]
    • xml:id몇 안 되는 일반 XML 속성 중 하나임(예:xml:lang네임스페이스를 명시적으로 선언하지 않고도 사용할 수 있는 제품.[4]XHTML에서idXHTML이 이전에 지정되었기 때문에 사용해야 함xml:id존재했다
  • XML 응용프로그램에서 특정 구문의 조각 식별자는 XPointer가 될 수 있다(예: URI의 조각 식별자).http://www.example.org/foo.xml#xpointer(//Rube)URI http://www.example.org/foo.xml에 의해 식별된 문서에서 "Rube"라는 모든 XML 요소를 가리킨다.URI가 주어진 경우 XPointer 프로세서는 (인터넷에서 요청하여) 문서의 표현을 얻고 문서의 "Rube" 요소의 표현을 반환할 것이다.
  • RDFS, OWL 또는 SKOS와 같은 RDF 어휘에서 단편 식별자를 사용하여 동일한 XML 네임스페이스에서 자원을 식별하지만 문서의 특정 부분에 반드시 해당하는 것은 아니다.예를 들어,http://www.w3.org/2004/02/skos/core#broaderSKOS Core 어휘에서 "브로드어"라는 개념을 식별하지만, 에 의해 식별된 자원의 특정 부분을 언급하지는 않는다.http://www.w3.org/2004/02/skos/core, 동일한 어휘의 다른 개념들과 함께 이 특정 개념의 의미론들이 선언되는 완전한 RDF 파일.
  • MIME용 URI에서text/plain문서 RFC 5147은 키워드를 사용하여 문서 내의 문자 및 선 위치 및 범위에 대한 조각 식별자를 지정한다.char" 그리고 "line" 브라우저 지원이 부족한 것 같다.[5]다음 예제는 텍스트 문서의 11부터 20행까지를 식별한다.
    • http://example.com/document.txt#line=10,20
  • MIME용 URI에서text/csv문서, RFC 7111은 " 키워드를 사용하여 행, 열 및 셀 선택기로 조각 식별자를 지정한다.row" , "col", 그리고 "cell", 예를 들어 다음과 같다.
    • http://example.com/data.csv#row=4– 네 번째 행을 선택한다.
    • http://example.com/data.csv#col=2– 두 번째 열 선택
    • http://example.com/data.csv#row=5-7– 5번째 행으로 시작하는 3개의 연속 행 선택한다.
    • http://example.com/data.csv#row=5-*– 5번째 행으로 시작하는 모든 행 선택
    • http://example.com/data.csv#cell=4,1-6,2– 4번째 행과 1번째 열에서 시작하여 6번째 행과 2번째 열에서 끝나는 영역을 선택하십시오.
  • MIME 오디오/*, 이미지/*, 비디오/* 문서에 대한 URI에서는 단편 또는 단편 의미론을 정의한 사람은 거의 없다.[6]미디어 조각 URI 1.0(기본) 구문은 키워드를 사용하여 2차원(임시 및 공간)의 미디어 리소스 어드레싱을 지원한다.t그리고xywh따라서 다음과 같은 미디어 조각 URI를 사용할 수 있다.src의 속성audio또는video HTML5 요소:
    • http://example.com/foo.mp4#t=10,20
    • http://example.com/bar.webm#t=40,80&xywh=160,120,320,240
    • 다른 웹 사이트에서는 조각 부분을 사용하여 해당 웹 사이트에서 실행되는 스크립트에 추가 정보를 전달함(예: Google 비디오는 다음 형식으로 permalinks를 이해함)#01h25m30s지정된 위치에서 플레이를 시작하고 [7]유튜브는 다음과 같은 유사한 코드를 사용한다.#t=3m25s.[8]
  • 자바스크립트에서 현재 HTML 또는 XHTML 페이지의 단편 식별자는 "해시" 속성에서 액세스할 수 있다.location.hash– Javascript는 다른 문서 유형에도 사용할 수 있다는 점에 유의하십시오.AJAX가 부상하면서 일부 웹사이트는 조각 식별자를 사용해 재로드가 필요 없는 페이지 변경에 대한 브라우저의 백버튼 동작을 모방하거나 하위 페이지를 에뮬레이트한다.
    • 예를 들어, Gmail은 메일 박스, 개별 메일, 검색 결과, 설정 등 거의 모든 인터페이스에 단일 URL을 사용하여 이러한 인터페이스를 직접 연결할 수 있도록 한다.[9]
    • Adobe Flash 웹 사이트는 일반적으로 SWFAddress JavaScript 라이브러리의 도움을 받아 웹 사이트 또는 웹 응용 프로그램의 상태를 사용자에게 알리고 심층 연결을 용이하게 하기 위해 조각 파트를 사용할 수 있다.
  • MIME용 URI에서application/pdf문서 PDF 뷰어는 다수의 단편 식별자를 인식한다.[10][11]예를 들어, 다음 URL로 끝나는 경우.pdf#page=35대부분의 독자들이 PDF를 열고 35페이지로 스크롤하게 할 것이다.다음과 같은 몇 가지 다른 매개변수가 가능하다.#nameddest=(HTML 앵커와 유사)#search="word1 word2",#zoom=, 등. 여러 매개변수를 앰퍼샌드와 결합할 수 있다.
    • http://example.org/doc.pdf#view=fitb&nameddest=Chapter3.
  • SVG에서 조각은 다음과 같은 인수를 지정할 수 있다.viewBox(),preserveAspectRatio()그리고transform().[12]

제안.

(앵커 메타데이터를 저장할 수 없는) 일반 텍스트 문서와 함께 사용하기 위한 단편 식별자 또는 작성자가 앵커 태그를 사용하지 않은 HTML 문서 내의 위치를 참조하기 위한 몇 가지 제안이 있었다.

  • 2012년 9월 현재 미디어 조각 URI 1.0(기본)은 W3C 권고안이다.[13]
  • Chrome 버전 80 이상에서는[14][15] W3CWICGText 조각들을 [16]구현하므로#:~:text=foo브라우저가 다음 작업을 검색하도록 함foo일치하는 텍스트를 강조 표시하고 해당 텍스트로 스크롤하여 스크롤하십시오.시작과 끝 외에도, 코드 조각은 컨텍스트: 앞에 또는 뒤에 와야 하는 텍스트도 지정할 수 있다.foo그러나 강조 표시되지 않을 것이다('밤'이 선행하는 '비전'을 검색하는 경우).
  • 파이톤 패키지 인덱스는 파일의 MD5 해시를 URL에 단편 식별자로 첨부한다.[17]MD5가 파손되지 않은 경우(파손된 해시함수) 패키지의 무결성을 보장하는 데 사용할 수 있다.
    • https://pypi.python.org ... zodbbrowser-0.3.1.tar.gz#md5=38dc89f294b24691d3f0d893ed3c119c
  • 해시방[18] 파편은 느낌표로 시작하는 파편이다.그것은 동적 단일 페이지 응용프로그램을 색인화하기 위해 현재 사용되지 않는 접근방식에서 사용되었다.느낌표HTML4, XHTML 및 XML 식별자에서는 불법이며, 그 기능으로부터 일정 정도의 분리가 가능하다.그러나 HTML5에서는 허용된다.[19]
    • 2009년과 2015년 사이에 Google Webmaster Central은 상태 저장 AJAX 페이지에 대한 조각 식별자의 초기 느낌표를 사용하여 "AJAX 탐색 방식"[20][21]을 제안하고 권장했다.
      http://example.com/page?query#!state
    • 또 다른 구현은 다음 작업을 대체하는 것이었습니다.#!와 함께?_escaped_fragment_=[20]
    • 해시방 URI는 브라우저에 자바스크립트가 활성화되지 않은 사람들이 페이지를 접속할 수 없게 만들기 때문에 W3C의 제니 테니슨을 포함한 많은 작가들에 의해 문제점으로 여겨져 왔다.또한 브라우저가 Referer 헤더에서 단편 식별자를 전송할 수 없기 때문에 HTTP Referer 헤더를 파손한다.[18]
    • 2015년 구글은 해시방 AJAX 크롤링 제안서를 무효화하며, 대신 누진적 강화와 HTML5의 활용을 권고했다.history.pushState()[22] 방법의[23]
    • Mozilla Foundation의 직원 Gerbase Markham은 이 양식을 검색하기 위한 조각 식별자를 제안했다.#!s!search terms. s 뒤에 숫자 추가(#!s10!)은 브라우저가 검색어 n번째 발생을 검색해야 함을 나타낸다.음수().#!s-3!)는 문서의 끝에서부터 뒤쪽으로 검색을 시작한다.Greasemonkey 스크립트는 호환 가능한 브라우저에 이 기능을 추가할 수 있다.[24]
      • http://example.com/index.html#!s3!search terms
  • ETH 취리히의 에릭 와일드와 마르셀 바슈나겔은 이것을 확장하여 정규 표현을 사용하여 일반 텍스트 문서에서 파편을 식별하기도 하며, 키워드는 ""이다.match".[25] 그들은 또한 시제품 구현을 Firefox 브라우저의 확장으로 설명한다.예를 들어, 다음은 문서에서 대소문자를 구분하지 않는 텍스트 "RFC"를 찾을 수 있다.
    • http://example.com/document.txt#match=[rR][fF][cC]
  • 예지연구소의 K. Yee는 콜론과 앵커 식별자와 구별하기 위한 키워드로 구분된 "확장된 단편 식별자"를 제안한다."파쇄 사양 체계" ID가 "인 텍스트 검색 조각 식별자words"는 이 계획의 첫 번째 제안이다.[26]다음 예제는 "검색어에 대한 일부 컨텍스트" 문자열의 첫 번째 발생에 대해 문서를 검색한 후 "검색어"라는 단어를 강조 표시한다.
    • http://example.com/index.html#:words:some-context-for-a-(search-term)
  • LiveURLs 프로젝트는[27] 양식의 페이지 내 텍스트 영역을 참조하기 위한 조각 식별자 형식을 제안했다.#FWS+C여기서 F는 첫 단어(최대 5자)의 길이, W는 첫 단어 자체, S는 선택한 텍스트의 길이, C는 선택한 텍스트의 32비트 CRC이다.[28]그들은 Firefox 브라우저의 확장으로서 이 계획의 변형을 구현했다.[29]#LFWS+C여기서 L은 조각 자체의 길이로서 두 개의 16진수로 되어 있다.구현된 변형을 사용하여 "파손"이라는 단어에 연결하면 다음과 같은 결과를 얻을 수 있다.
    • http://example.com/index.html#115Fragm8+-52f89c4c
  • Firefox 5까지 Firefox는 적절한 ID가 없는 HTML 문서 내에서 연결하기 위해 http://antimatter15.com/wp/2009/11/xpath-bookmark-bookmarklet/과 같은 북마크릿과 함께 사용할 수 있는 #firefoxath:/body/div[3]와 같은 XPath 링크를 지원했다.이 기능은 https://bugzilla.mozilla.org/show_bug.cgi?id=457102에서 코드 정리의 일부로 제거되었다.
  • ePub 전자책 형식에서, EPUB Canonical Partic Identifier(epubcfi,[30] 2011-2017)는 문서 구조와 패턴 매칭을 통해 비접속 텍스트 범위를 찾기 위해 단편 식별자를 사용하여 임의 컨텐츠를 참조하는 W3C/IDPF 표준화된 방법을 정의한다.이러한 동적 딥 링크는 텍스트가 업데이트된 후 콘텐츠를 찾는 데 도움이 되며, 예를 들어 Apple Books에서 사용된다.

참고 항목

참조

  1. ^ "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax". Internet Engineering Task Force. January 2005. Retrieved 2012-03-06.
  2. ^ "Representation types and fragment identifier semantics". Architecture of the World Wide Web, Volume One. W3C. 2004. Retrieved 2011-07-13.
  3. ^ "Validity constraint: ID". XML 1.0 (Fifth Edition). W3C. 2008. Retrieved 2011-07-13.
  4. ^ "xml:id Version 1.0". W3C. 2005. Retrieved 2011-07-13.
  5. ^ "Issue 77024". Chromium. 2011. Retrieved 2011-07-13.
  6. ^ "Media Type Review". W3C Media Fragments Working Group. 2009. Retrieved 2009-04-29.
  7. ^ "New Feature: Link within a Video". 2006-07-19. Retrieved 2011-07-13.
  8. ^ Gmail, Google 블로그스코프, 2007-11-17의 특정 콘텐츠에 대한 링크
  9. ^ "Parameters for Opening PDF Files – Specifying parameters in a URL" (PDF). Adobe. April 2007. Retrieved 2017-09-20.
  10. ^ "RFC 3778 – The application/pdf Media Type". The Internet Society. May 2004. Retrieved 2017-09-20.
  11. ^ "Linking – SVG 1.1 (Second Edition)".
  12. ^ "Media Fragments URI 1.0 (basic) W3C Recommendation". Retrieved 2012-09-25.
  13. ^ "Scroll to Text Fragment". Chrome Platform Status. Google Chrome. Retrieved 2020-05-18.
  14. ^ Kelly, Gordon. "Google Chrome 80 Released With Controversial Deep Linking Upgrade". Forbes. Retrieved 2020-06-04.
  15. ^ "WICG/scroll-to-text-fragment: Proposal to allow specifying a text snippet in a URL fragment". GitHub. WebPlatform.org Incubator Community Group at W3C. Retrieved 2020-05-18.
  16. ^ "Pypi md5 check support". Retrieved 2011-07-13. Pypi has the habit to append an md5 fragment to its egg urls, we'll use it to check the already present distribution files in the cache
  17. ^ a b "Hash URIs". W3C Blog. 2011-05-12. Retrieved 2011-07-13.
  18. ^ "HTML 5.1 2nd Edition". W3C. 2017. Retrieved 2018-08-03.
  19. ^ a b "Proposal for making AJAX crawlable". 2009-10-07. Retrieved 2011-07-13.
  20. ^ "(Specifications) Making AJAX Applications Crawlable". Google Inc. Retrieved 2013-05-04.
  21. ^ "Manipulating the browser history". Mozilla Developer Network. Retrieved 2017-02-23.
  22. ^ "Deprecating our AJAX crawling scheme". Official Google Webmaster Central Blog. Retrieved 2017-02-23.
  23. ^ 조각 검색, gerv.net
  24. ^ 일반 텍스트 파일의 조각 식별자, Erik Wilde와 Marcel Baschnagel, 스위스 연방 기술 대학(ETH Zürich), 하이퍼텍스트 및 하이퍼미디어 도이에 대한 제16차 ACM 회의 진행자:10.1145/1083356.1083398
  25. ^ 텍스트 검색 조각 식별자, K.예, 1998년 3월 선견지명연구소 네트워크 워킹그룹
  26. ^ LiveURLs 프로젝트
  27. ^ LiveURLs 이면의 기술, 2011-03-13에 액세스
  28. ^ "웹 마커" Firefox 추가 기능, 2011-03-13
  29. ^ "EPUB Canonical Fragment Identifiers 1.1". idpf.org. Retrieved 2020-06-03.

외부 링크

  • W3C 미디어 조각 작업 그룹, 시청각 자료(이미지의 영역 또는 비디오의 하위 클립 등)에서 미디어 조각을 처리하기 위한 URI 구문 및 의미론 설정
  • MediaMixer Community Portal은 미디어 조각 기술의 사용과 관련된 프레젠테이션, 튜토리얼, 사용 사례 및 데모대를 수집한다.