Fragment URI - URI fragment
V počítači Hyper-textový, a Fragment URI je tětiva z postavy který odkazuje na a zdroj který je podřízen jinému primárnímu zdroji. Primární zdroj je označen a Jednotný identifikátor zdroje (URI) a identifikátor fragmentu ukazuje na podřízený zdroj.
Identifikátor fragmentu zavedený značkou hash #
je volitelná poslední část a URL pro dokument. Obvykle se používá k identifikaci části tohoto dokumentu. Obecná syntaxe je uvedena v RFC 3986. The hash-mark oddělovač v URI není součástí identifikátoru fragmentu.
Základy
V identifikátorech URI hash mark #
zavádí volitelný fragment na konci adresy URL. Obecné RFC 3986 syntaxe pro URI také umožňuje volitelný dotaz část zavedená otazníkem ?
. V identifikátorech URI s dotazem a fragmentem fragment následuje dotaz. Části dotazu závisí na schématu URI a jsou vyhodnocovány serverem - např. http:
podporuje dotazy na rozdíl od ftp:
. Fragmenty závisí na dokumentu Typ MIME a jsou hodnoceny klientem (webový prohlížeč ). Klienti nemají posílat fragmenty URI na servery, když načtou dokument, a bez pomoci z místní aplikace (viz níže) se fragmenty neúčastní HTTP přesměrování.[1]
URI končící na #
je povolen obecnou syntaxí a je jakýmsi prázdným fragmentem. V typech dokumentů MIME, jako je text / html
nebo jakýkoli typ XML, prázdné identifikátory odpovídající této syntakticky legální konstrukci nejsou povoleny. Webové prohlížeče obvykle zobrazují v horní části dokumentu prázdný fragment.
Identifikátor fragmentu funguje odlišně od zbytku URI: jeho zpracování je výhradně na straně klienta bez účasti webový server, ačkoli server obvykle pomáhá určit typ MIME a typ MIME určuje zpracování fragmentů. Když činidlo (například webový prohlížeč) žádosti A webový zdroj z webového serveru agent odešle URI na server, ale fragment nezašle. Místo toho agent čeká, až server odešle prostředek, a poté agent zpracuje prostředek podle typu dokumentu a hodnoty fragmentu.[2]
Příklady
- V URI na MIME
text / html
stránky jakohttp://www.example.org/foo.html#bar
fragment odkazuje na prvek sid = "bar"
.- Grafické webové prohlížeče se obvykle posouvají na umístění stránek tak, aby horní část prvku identifikovaného ID fragmentu byla zarovnána s horní částí výřezu; identifikátory fragmentů se tedy často používají v tabulkách obsahu a v trvalé odkazy.
- Chrome verze 80 a vyšší[3][4] nářadí W3C je WICG Fragmenty textu,[5] tak
#: ~: text = foo
způsobí, že prohlížeč vyhledáfoo
, zvýrazněte odpovídající text a přejděte na něj. Kromě začátku a konce může fragment také určit kontext: text, který musí předcházet nebo následovatfoo
ale nebude zvýrazněno (příklad, který hledá „vidění“, kterému předchází „noc“ ).
- Chrome verze 80 a vyšší[3][4] nářadí W3C je WICG Fragmenty textu,[5] tak
- Vzhled identifikovaného prvku lze změnit pomocí
:cílová
CSS pseudotřída; Wikipedia používá k zvýraznění vybrané reference. Zejména CSSdisplej: blok
lze použít k zobrazení obsahu pouze v případě, že se jedná o cíl, a jinak je skrytdisplej: žádný
. - Zastaralé
název
Atribut (povolený pouze pro některé prvky) měl podobný účel v nyní zastaralých prohlížečích. Pokud je přítomennázev
aid
musí být identické.
- Grafické webové prohlížeče se obvykle posouvají na umístění stránek tak, aby horní část prvku identifikovaného ID fragmentu byla zarovnána s horní částí výřezu; identifikátory fragmentů se tedy často používají v tabulkách obsahu a v trvalé odkazy.
- Celkově XML typy dokumentů včetně XHTML fragmenty odpovídající an
xml: id
nebo podobnéid
atributy následujínázev
-syntaxe a začínají písmenem, podtržítkem nebo dvojtečkou. Zejména nemohou začínat číslicí nebo spojovníkem.[6]xml: id
je jedním z mála obecných atributů XML, např.xml: lang
, které lze použít bez výslovného deklarace oboru názvů.[7] V XHTMLid
musí být použito, protože XHTML byl zadán dřívexml: id
existoval.
- V aplikacích XML mohou být identifikátory fragmentů v určité syntaxi XPointers; například identifikátor fragmentu v URI
http://www.example.org/foo.xml#xpointer(//Rube)
odkazuje na všechny prvky XML s názvem „Rube“ v dokumentu identifikovaném identifikátorem URI http://www.example.org/foo.xml. Procesor XPointer, vzhledem k tomu, že URI, by získal reprezentaci dokumentu (například tím, že ji požaduje z Internetu) a vrátil by reprezentaci prvků dokumentu „Rube“. - v RDF slovníky, jako např RDFS, SOVA nebo SKOS, identifikátory fragmentů se používají k identifikaci zdrojů ve stejném Obor názvů XML, ale nemusí nutně odpovídat konkrétní části dokumentu. Například,
http://www.w3.org/2004/02/skos/core#broader
identifikuje koncept „širší“ ve slovníku SKOS Core, ale neodkazuje na konkrétní část zdroje identifikovanouhttp://www.w3.org/2004/02/skos/core
, kompletní soubor RDF, ve kterém je deklarována sémantika tohoto konkrétního konceptu, spolu s dalšími koncepty ve stejné slovní zásobě. - V URI na MIME
text / prostý
dokumenty RFC 5147 určuje identifikátor fragmentu pro pozice znaků a řádků a rozsahy v dokumentu pomocí klíčových slov "char
" a "čára
Zdá se, že chybí podpora prohlížeče.[8] Následující příklad identifikuje řádky 11 až 20 textového dokumentu:http://example.com/document.txt#line=10,20
- V URI na MIME
text / csv
dokumenty, RFC 7111 určuje identifikátor fragmentu jako selektor pro řádky, sloupce a buňky pomocí klíčových slov "řádek
" , "plk
", a "buňka
", například:http://example.com/data.csv#row=4
- Vybere 4. řádek.http://example.com/data.csv#col=2
- Vybere druhý sloupec.http://example.com/data.csv#row=5-7
- Vybere tři po sobě jdoucí řádky začínající 5. řádkem.http://example.com/data.csv#row=5-*
- Vybere všechny řádky začínající 5. řádkem.http://example.com/data.csv#cell=4,1-6,2
- Vybere oblast, která začíná ve 4. řádku a v 1. sloupci a končí v 6. řádku a ve 2. sloupci.
- V URI pro dokumenty MIME audio / *, image / *, video / * má jen velmi málo definované fragmenty nebo sémantiku fragmentu.[9] Syntaxe Media Fragments URI 1.0 (základní) podporuje adresování mediálního prostředku ve dvou dimenzích (časové a prostorové) pomocí klíčových slov
t
axywh
. Proto je možné použít následující identifikátory URI fragmentů médií vsrc
atributZvuk
nebovideo
HTML5 živel:http://example.com/foo.mp4#t=10,20
http://example.com/bar.webm#t=40,80&xywh=160,120,320,240
- Jiné weby používají fragmentovou část k předávání dalších informací skriptům, které na nich běží - například Google Video rozumí trvalým odkazům ve formátu
# 01h25m30s
začít hrát na určené pozici,[10] a Youtube používá podobný kód jako# t = 3 min 25 s
.[11]
- v JavaScript, k identifikátoru fragmentu aktuální stránky HTML nebo XHTML lze přistupovat ve vlastnosti „hash“
umístění. hash
- Všimněte si, že Javascript lze použít také s jinými typy dokumentů. Se vzestupem AJAX Některé weby používají identifikátory fragmentů k emulaci chování tlačítka Zpět u prohlížečů pro změny stránek, které nevyžadují opětovné načtení, nebo k emulaci podstránek.- Například, Gmail používá jedinou adresu URL téměř pro každé rozhraní - poštovní schránky, jednotlivé e-maily, výsledky hledání, nastavení - fragment se používá k přímé propojení těchto rozhraní.[12]
- Adobe Flash weby mohou pomocí fragmentové části informovat uživatele o stavu webu nebo webové aplikace a usnadnit jej hluboké propojení, běžně s pomocí SWFadresa Knihovna JavaScript.
- V URI na MIME
aplikace / pdf
dokumenty Prohlížeče PDF rozpoznávají řadu identifikátorů fragmentů.[13][14] Například URL končící na.pdf # stránka = 35
způsobí, že většina čtenářů otevře PDF a posune se na stranu 35. Je možné několik dalších parametrů, včetně# nameddest =
(podobně jako HTML kotvy),# search = "word1 word2"
,# zoom =
atd. S ampersandy lze kombinovat více parametrů:http://example.org/doc.pdf#view=fitb&nameddest= Kapitola 3
.
- v SVG, fragmenty mohou specifikovat argumenty jako
viewBox ()
,preserveAspectRatio ()
, apřeměnit()
.[15]
Návrhy
Bylo navrženo několik identifikátorů fragmentů pro použití s dokumenty ve formátu prostého textu (které nemohou ukládat metadata ukotvení) nebo pro odkaz na umístění v dokumentech HTML, ve kterých autor nepoužíval značky ukotvení:
- Od září 2012 je Media Fragments URI 1.0 (základní) a W3C Doporučení.[16]
- The Krajta Index balíku připojuje MD5 hash souboru na URL jako identifikátor fragmentu.[17] Pokud by MD5 byly neporušené (je to nefunkční hash funkce), mohl by být použit k zajištění integrita balíčku.
https://pypi.python.org ... zodbbrowser-0.3.1.tar.gz # md5 = 38dc89f294b24691d3f0d893ed3c119c
- A hash-bang[18] fragment je fragment začínající vykřičníkem
!
. To bylo použito v nyní zastaralém přístupu k indexování dynamiky jednostránkové aplikace. An vykřičník je nelegální v HTML4 (ale ne v HTML5[19]), Identifikátory XHTML a XML, které zaručují určitý stupeň oddělení od této funkce.- V letech 2009 až 2015 Centrála pro webmastery Google navrhl a poté doporučil „schéma procházení AJAX“[20][21] pomocí počátečního vykřičníku v identifikátorech fragmentů pro stav AJAX stránky:
http://example.com/page?query#!state
- Řada autorů, včetně Jeni Tennison na W3C, považovala identifikátory URI Hash-bang za problematické, protože dělají stránky nepřístupnými těm, kteří nemají JavaScript aktivovány v jejich prohlížeči. Také se zlomí HTTP referer záhlaví jako prohlížeče nesmí odesílat identifikátor fragmentu v záhlaví Referer.[18]
- V roce 2015 společnost Google odmítla jejich návrh procházení hash-bang AJAX a místo toho doporučila použití progresivní vylepšení a HTML5 je
history.pushState ()
[22] metoda.[23] - Mozilla Foundation zaměstnanec Gervase Markham navrhl identifikátor fragmentu pro prohledávání formuláře
#! s! hledané výrazy
. Přidání čísla za s (#! s10!
) označuje, že prohlížeč by měl hledat nvýskyt hledaného výrazu. Záporné číslo (#! s-3!
) začne hledat dozadu od konce dokumentu. A Greasemonkey Pro přidání této funkce do kompatibilních prohlížečů je k dispozici skript.[24]http://example.com/index.html#!s3! vyhledávací dotazy
- V letech 2009 až 2015 Centrála pro webmastery Google navrhl a poté doporučil „schéma procházení AJAX“[20][21] pomocí počátečního vykřičníku v identifikátorech fragmentů pro stav AJAX stránky:
- Erik Wilde a Marcel Baschnagel z ETH Curych rozšířit to také identifikovat fragmenty v dokumentech prostého textu pomocí regulární výrazy s klíčovým slovem „
zápas
".[25] Také popisují implementaci prototypu jako rozšíření pro Firefox prohlížeč. Následující text by například našel kdekoli v dokumentu nerozlišující velká a malá písmena „RFC“:http://example.com/document.txt#match=[rR][fF][cC]
- K. Yee z Foresight Institute navrhuje "rozšířené identifikátory fragmentů" oddělené dvojtečky a klíčové slovo, které je odlišuje od identifikátorů kotev. Identifikátor fragmentu textového vyhledávání s „id specifikací schématu fragmentu“
slova
„je prvním návrhem v tomto režimu.[26] Následující příklad vyhledá v dokumentu první výskyt řetězce „nějaký kontext pro hledaný výraz“ a poté zvýrazní slova „hledaný výraz“:http://example.com/index.html#:words:some-context-for-a-(search-term)
- Projekt LiveURLs[27] navrhl formát identifikátoru fragmentu pro odkaz na oblast textu na stránce ve formuláři
# FWS + C
, kde F je délka prvního slova (až pět znaků), Ž je první slovo samo o sobě, S je délka vybraného textu a C je 32bitový CRC vybraného textu.[28] Implementovali variantu tohoto schématu jako rozšíření pro prohlížeč Firefox,[29] pomocí formuláře# LFWS + C
, kde L je délka samotného fragmentu ve dvou hex číslice. Odkaz na slovo „Fragment“ pomocí implementované varianty by přinesl:http://example.com/index.html#115Fragm8+-52f89c4c
- Až do Firefoxu 5 Firefox podporoval odkazy XPath, jako například #xpath: / html / body / div [3], které lze použít ve spojení se záložkou, jako je http://antimatter15.com/wp/2009/11/xpath-bookmark-bookmarklet/ k propojení v dokumentech HTML, které postrádají správná ID. Tato funkce byla odstraněna jako součást vyčištění kódu v https://bugzilla.mozilla.org/show_bug.cgi?id=457102
- v ePub formát elektronické knihy, EPUB Canonical Fragment Identifier (epubcfi,[30] 2011-2017) definuje a W3C /IDPF -standardizovaná metoda pro odkazování na libovolný obsah pomocí identifikátorů fragmentů k vyhledání nechráněných textových rozsahů prostřednictvím struktury dokumentu a porovnávání vzorů. Tyto dynamické přímé odkazy pomáhají při hledání obsahu po aktualizaci textu a používají se například v Apple Books.
Viz také
Reference
- ^ „RFC 3986 Uniform Resource Identifier (URI): Generic Syntax“. Pracovní skupina pro internetové inženýrství. Leden 2005. Citováno 2012-03-06.
- ^ "Typy sémantiky a sémantika identifikátoru fragmentu". Architektura webu, první díl. W3C. 2004. Citováno 2011-07-13.
- ^ „Scroll to Text Fragment“. Stav platformy Chrome. Google Chrome. Citováno 2020-05-18.
- ^ Kelly, Gordone. „Google Chrome 80 vydán s kontroverzním upgradem přímých odkazů“. Forbes. Citováno 2020-06-04.
- ^ „WICG / scroll-to-text-fragment: Proposal to allow specifying a text snippet in a URL fragment“. GitHub. WebPlatform.org Incubator Community Group ve společnosti W3C. Citováno 2020-05-18.
- ^ "Omezení platnosti: ID". XML 1.0 (páté vydání). W3C. 2008. Citováno 2011-07-13.
- ^ „xml: id verze 1.0“. W3C. 2005. Citováno 2011-07-13.
- ^ „Číslo 77024“. Chrom. 2011. Citováno 2011-07-13.
- ^ „Kontrola typu média“. Pracovní skupina W3C Media Fragments. 2009. Citováno 2009-04-29.
- ^ „Nová funkce: Odkaz ve videu“. 2006-07-19. Citováno 2011-07-13.
- ^ „Odkaz na nejlepší části vašich videí“. Youtube. 2008-10-30. Citováno 2011-07-13.
- ^ Odkaz na konkrétní obsah v Gmailu, Google Blogoscoped, 2007-11-17
- ^ "Parametry pro otevírání souborů PDF - Specifikace parametrů v URL" (PDF). Adobe. Dubna 2007. Citováno 2017-09-20.
- ^ „RFC 3778 - Typ média aplikace / pdf“. Internetová společnost. Květen 2004. Citováno 2017-09-20.
- ^ „Propojení - SVG 1.1 (druhé vydání)“.
- ^ „Media Fragments URI 1.0 (basic) W3C Doporučení“. Citováno 2012-09-25.
- ^ "Podpora kontroly Pypi md5". Citováno 2011-07-13.
Pypi má ve zvyku připojit fragment md5 k jeho vaječným adresám URL, použijeme ho ke kontrole již přítomných distribučních souborů v mezipaměti
- ^ A b „Hash URI“. Blog W3C. 2011-05-12. Citováno 2011-07-13.
- ^ „HTML 5.1, 2. vydání“. W3C. 2017. Citováno 2018-08-03.
- ^ „Návrh na zpřístupnění AJAX“. 2009-10-07. Citováno 2011-07-13.
- ^ „(Specifikace) Zajištění procházení aplikací AJAX“. Google Inc.. Citováno 2013-05-04.
- ^ „Manipulace s historií prohlížeče“. Mozilla Developer Network. Citováno 2017-02-23.
- ^ „Ukončení podpory našeho schématu procházení AJAX“. Oficiální blog Google Webmaster Central. Citováno 2017-02-23.
- ^ Hledání fragmentů, gerv.net
- ^ Identifikátory fragmentů pro soubory ve formátu prostého textu, Erik Wilde a Marcel Baschnagel, Švýcarský federální technologický institut (ETH Zürich), Sborník ze šestnácté konference ACM o hypertextu a hypermedii doi:10.1145/1083356.1083398
- ^ Identifikátory fragmentů textového vyhledávání, K. Yee, Network Working Group, Foresight Institute, březen 1998
- ^ Projekt LiveURL
- ^ Technologie za LiveURL, přístup 2011-03-13
- ^ Doplněk „Web Marker“ pro Firefox, přístup 2011-03-13
- ^ „Kanonické identifikátory fragmentů EPUB 1.1“. idpf.org. Citováno 2020-06-03.
externí odkazy
- W3C Fragmenty médií Pracovní skupina, vytvoření syntaxe a sémantiky identifikátoru URI k řešení fragmentů médií v audiovizuálním materiálu (jako je například oblast v obrázku nebo dílčí klip videa)
- MediaMixer Komunitní portál shromažďuje prezentace, výukové programy, případy použití a demonstrátory související s používáním technologie Media Fragment