URI 片段在計算機超文字中是指從屬於主資源的子資源的標識字串。主資源由統一資源識別符號（URI）標識，片段識別符號指向從屬資源。 由井號 引入的片段識別符號是文件的 URL 的可選最後部分。通常用於標識該文件的一部分。在 RFC 3986 中指定了其通用語法。URI 中的井號 分隔符不是片段識別符號的一部分。 概述 在 URI 中，井號 在 URL 末尾附近引入可選片段。RFC 3986 定義的 URI 通用語法還允許使用問號？引入可選的查詢部分。在帶有查詢和片段的 URI 中，片段位於查詢之後。查詢部分取決於 URI 方案並由伺服器評估，例如，http 支援與 ftp 不同的查詢。片段取決於文件 MIME 型別並由客戶端（Web 瀏覽器）評估。客戶端在獲取文件時不應將 URI 片段傳送到伺服器，並且如果沒有本地應用程式的幫助，片段不會參與 HTTP 重定向。 以井號 結尾的 URI 是通用語法允許的，並且這是一種空片段。在 MIME 文件型別（例如 texthtml 或任何 XML 型別）中，不允許使用空識別符號來匹配此語法上合法的構造。 Web 瀏覽器通常會在文件頂部顯示一個空片段。 片段識別符號的功能與 URI 的其餘部分不同：它的處理完全是客戶端進行的，沒有 Web 伺服器的參與，儘管伺服器通常幫助確定 MIME 型別，並且 MIME 型別決定片段的處理。當代理（例如 Web 瀏覽器）從 Web 伺服器請求 Web 資源時，代理將 URI 傳送到伺服器，但不傳送片段。相反，代理等待伺服器傳送資源，然後代理根據文件型別和片段值處理資源。 在 HTML 網頁中，代理將查詢由 HTML 標記標識的錨點，該標記包含等於片段識別符號的 id 或 name 屬性。 例子 在 MIME 為 texthtml 頁面的 URI（例如 httpwwwexampleorgfoohtmlbar）中，片段引用 idbar 的元素。 圖形 Web 瀏覽器通常滾動到位置頁面，以便由片段 id 標識的元素的頂部與視口（viewport）的頂部對齊；因此片段識別符號經常用在目錄和永久連結中。 可以透過 CSS 偽類target 更改被標識的元素的外觀；維基百科使用它來高亮顯示所選的參考文獻。值得注意的是，CSS 的 display block 僅當內容是目標時才可用於顯示內容，否則透過 display none 隱藏。 已棄用的 name 屬性（僅允許某些元素）在現已過時的瀏覽器中具有類似的用途。如果存在 name，則必須和 id 相同。 在所有 XML 文件型別中，包括對應於 xmlid 或類似 id 屬性的 XHTML 片段，都遵循 Name 語法並以字母、下劃線或冒號開頭。值得注意的是，它們不能以數字或連字元開頭。 xmlid 是少數通用 XML 屬性之一，例如 xmllang，無需顯式宣告名稱空間即可使用。在 XHTML 中必須使用 id，因為 XHTML 是在 xmlid 存在之前指定的。 在 XML 應用中，某種語法中的片段識別符號可以是 XPointer； 例如，URI httpwwwexampleorgfooxmlxpointer Rube 中的片段識別符號指的是由 URI httpwwwexampleorgfooxml 標識的文件中名為 Rube 的所有 XML 元素。給定該 URI，XPointer 處理器將獲取文件的表示（例如透過從 Internet 請求）並返回文件的 Rube 元素的表示。 在 RDF 詞彙表中，例如、OWL 或 SKOS，片段識別符號用於標識同一 XML 名稱空間中的資源，但不一定對應於文件的特定部分。例如，httpwwww3org200402skoscorebroader 標識了 SKOS Core 詞彙中的 broader 概念，但它並不指代 httpwwww3org200402skoscore 標識的資源的特定部分。它是一個完整的 RDF 檔案，其中聲明瞭該特定概念的語義以及同一詞彙表中的其他概念。 在 MIME textplain 文件的 URI 中，RFC 5147 使用關鍵字 char 和 line 指定文件內字元和行位置和範圍的片段識別符號。瀏覽器支援似乎缺乏。以下示例標識文字文件的第 11 行到第 20 行： httpexamplecomdocumenttxtline1020 在 MIME textcsv 文件的 URI 中，RFC 7111 使用關鍵字 row col cell 指定片段識別符號作為行、列和單元格的選擇器，例如： httpexamplecomdatacsvrow4 選擇第 4 行 httpexamplecomdatacsvcol2 選擇第二列 httpexamplecomdatacsvrow57 選擇從第 5 行開始的三個連續行 httpexamplecomdatacsvrow5 選擇從第 5 行開始的所有行 httpexamplecomdatacsvcell4162 選擇從第 4 行第 1 列開始到第 6 行第 2 列結束的區域 在 MIME audio、image、video 文件的 URI 中，很少有定義片段或片段語義。媒體片段 URI 10（基本）語法支援使用關鍵字 t 和 xywh 沿二維（時間和空間）定址媒體資源。因此，可以在音訊或影片 HTML5 元素的 src 屬性中使用以下媒體片段 URI： httpexamplecomfoomp4t1020 httpexamplecombarwebmt4080xywh160120320240 其他網站使用片段部分將一些額外資訊傳遞給在其上執行的指令碼 例如，Google Video 理解 01h25m30s 格式的永久連結以在指定位置開始播放，而 YouTube 使用類似的程式碼，例如 t3m25s 在 JavaScript 中，當前 HTML 或 XHTML 頁面的片段識別符號可以在 hash 屬性 locationhash 中訪問 請注意，JavaScript 也可以與其他文件型別一起使用。 隨著 AJAX 的興起，一些網站使用片段識別符號來模擬瀏覽器的後退按鈕行為，以進行不需要重新載入的頁面更改，或模擬子頁面。 例如，Gmail 幾乎每個介面都使用單個 URL 郵箱、個人郵件、搜尋結果、設定 該片段用於使這些介面可以直接連結。Link to Specific Content in Gmail Google Blogoscoped 20071117 Adobe Flash 網站可以使用片段部分來通知使用者網站或 Web 應用程式的狀態，並促進深度連結，通常在 SWFAddress JavaScript 庫的幫助下。 連結到 JSON 文件的 URI 可以指定指向特定值的指標。 例如，以 foo 結尾的 URL 可用於從以 foo bar baz 開頭的文件中的 鍵 值對 中提取值。 在 MIME applicationpdf 文件的 URI 中，PDF 檢視器可識別許多片段識別符號。例如，以 pdfpage35 結尾的 URL 將導致大多數讀者開啟 PDF 並滾動到第 35 頁。其他幾個引數也是可能的，包括 nameddest（類似於 HTML 錨點）、searchword1 word2 zoom 等。多個引數可以用 符號組合： httpexampleorgdocpdfviewfitbnameddestChapter3 在 SVG 中，片段可以指定 viewBox preserveAspectRatio transform 等引數。 W3C 提案 對於與純文字文件（無法儲存錨元資料）一起使用的片段識別符號，或者引用 HTML 文件中作者未使用錨標記的位置，已經提出了一些 W3C 提案： 2012 年 9 月，Media Fragments URI 10 basic 已成為 W3C 推薦標準。 Chrome 版本 80 及更高版本實現了 WICG Text Fragments 因此 textfoo 將導致瀏覽器搜尋 foo，突出顯示匹配的文字，然後滾動到它。除了開始和結束之外，程式碼片段還可以指定上下文：必須在 foo 之前或之後但不會突出顯示的文字（例如搜尋前面帶有 night 的 vision）。 Python 的 Package Index 將檔案的 MD5 雜湊值附加到 URL 作為片段識別符號。如果 MD5 未被破壞，這可以用來確保包的完整性。 httpspypipythonorg zodbbrowser031targzmd538dc89f294b24691d3f0d893ed3c119c hashbang 片段是以感嘆號！開頭的片段。它用於索引動態單頁應用程式的現已被棄用的方法中。感嘆號在 HTML4、XHTML 和 XML 識別符號中是非法的，因此與該功能有一定程度的分離。然而，它在 HTML5 中是允許的。 2009 年至 2015 年間，Google 網站管理員提出並推薦了一種 AJAX 抓取方案，在有狀態 AJAX 頁面的片段識別符號中使用初始感嘆號： httpexamplecompagequerystate 另一個實現是替換 為？_escaped_fragment_ Hashbang URI 被 W3C 的 Jeni Tennison 等許多人認為是有問題的，因為它們使那些沒有在瀏覽器中啟用 JavaScript 的人無法訪問頁面。它們還會破壞 HTTP Referer 標頭，因為瀏覽器不允許傳送 Referer 標頭中的片段識別符號。 2015 年，Google 棄用了他們的 hashbang AJAX 抓取提案，轉而建議使用漸進增強和 HTML5 的 historypushState 方法。 Mozilla 基金會 Gervase Markham 提出了一種用於搜尋的片段識別符號，其形式為 ssearch terms。 在 s s10 後新增數字表示瀏覽器應搜尋第 n 次出現的搜尋詞。負數 s3 從文件末尾開始向後搜尋。Greasemonkey 指令碼可用於將此功能新增到相容瀏覽器。Fragment Search gervnet httpexamplecomindexhtmls3search terms 蘇黎世聯邦理工學院的 Erik Wilde 和 Marcel Baschnagel 將其擴充套件為使用正則表示式（使用關鍵字 match）來識別純文字文件中的片段。Fragment identifiers for plain text files Erik Wilde and Marcel Baschnagel Swiss Federal Institute of Technology ETH Zürich Proceedings of the sixteenth ACM conference on Hypertext and hypermedia 他們還描述了一個原型實現作為 Firefox 瀏覽器的擴充套件。例如，以下命令將在文件中的任何位置查詢不區分大小寫的文字 RFC： httpexamplecomdocumenttxtmatchrRfFcC 前瞻學會的 K Yee 提出了用冒號和關鍵字分隔的 擴充套件片段識別符號，以將它們與錨識別符號區分開來。具有 片段規範方案 id words 的文字搜尋片段識別符號是該方案中的第一個提案。TextSearch Fragment Identifiers K Yee Network Working Group Foresight Institute March 1998 以下示例將在文件中搜索字串 some context for a search term 的第一次出現，然後突出顯示單詞 search term： httpexamplecomindexhtmlwordssomecontextforasearchterm 上述方案在 Chrome 80 版本中實現。 LiveURLs 專案提出了一種片段識別符號格式，用於引用頁面內的文字區域，其形式為 FWSC，其中 F 是第一個單詞的長度（最多 5 個字元），W 是第一個單詞本身，S 是所選文字的長度，C 是所選文字的 32 位 CRC。The technology behind LiveURLs accessed 20110313 他們使用 LFWSC 的形式實現了該方案的變體作為 Firefox 瀏覽器的擴充套件 Web Marker Firefox addon accessed 20110313，其中 L 是片段本身的長度，採用兩個十六進位制數字。使用已實現的變體連結到單詞 Fragment 將產生： httpexamplecomindexhtml115Fragm852f89c4c 在 Firefox 5 之前，Firefox 支援 XPath 連結，例如 xpathhtmlbodydiv 3，它可以與書籤結合使用，例如 httpantimatter15comwp200911xpath bookmarkbookmarklet 用於連結缺少正確 ID 的 HTML 文件。 此功能已作為 httpsbugzillamozillaorgshow_bugcgiid457102 中程式碼清理的一部分被刪除 在 EPUB 電子書格式中，EPUB Canonical Fragment Identifier （epubcfi， 20112017）定義了一種 W3C 標準化方法，用於使用片段識別符號引用任意內容，透過文件結構和模式匹配來定位非錨定文字範圍。 這些動態深層連結有助於在文字更新和使用後定位內容，例如在 Apple Books 中。 參見 Query string URI normalization URL Clean URL URI scheme 參考文獻 外部連結 W3C Media Fragments Working Group establishing a URI syntax and semantics to address media fragments in audiovisual material such as a region in an image or a subclip of a video MediaMixer Community Portal collects presentations tutorials use cases and demonstrators related to use of Media Fragment technology CategoryURI 方案 Category 識別符 Category 超文字