path

パス (URL)

目次

  1. 仕様書
  2. 意味
  3. 比較
  4. プロトコル
  5. Location インターフェイス pathname 属性
    1. 性質
    2. 取得器
    3. 設定器
  6. 関連
  7. 歴史
    1. cloud 要素 path 属性

仕様書#

意味#

[56] URL path の意味と構文は、 URL scheme ごとに異なります。 詳しくは各 URL scheme の項を参照。

[55] HTTP での利用については、HTTP(S) scheme を参照。

[58] URL設計も参照。

比較#

[9] Path に関する比較演算として path一致があります。

[11] ディレクトリーの比較

[48] PathMatch, PatternMatch

プロトコル#

[19]

Location インターフェイス pathname 属性#

性質#

[23] この属性は、 Unforgeable です >>21

取得器#

[25] location.pathname取得器は、次のようにしなければなりません >>21

  1. [24] 文脈オブジェクト関係するDocument起源入口設定群オブジェクト起源同じ起源ドメインでなければ、
    1. [26] SecurityError 例外投げ、ここで停止します。
  2. [27] URLを、文脈オブジェクトURL に設定します。
  3. [28] URL非相対フラグが設定されていれば、
    1. [29] URLpathの最初の文字列を返します。
  4. [52] それ以外で、 URLパスなら、
    1. [53] 空文字列を返します。
  5. [30] それ以外なら、
    1. [31] 結果を、 / に設定します。
    2. [32] URLpathの各文字列文字列について、順に、
      1. [33] 結果の末尾に / を追加します。
      2. [34] 結果の末尾に文字列を追加します。
    3. [35] 結果を返します。

設定器#

[36] location.pathname設定器は、次のようにしなければなりません >>21

  1. [43] 入力を、与えられた値を USVString として解釈した結果に設定します。
  2. [37] 文脈オブジェクト関係するDocument起源入口設定群オブジェクト起源同じ起源ドメインでなければ、
    1. [38] SecurityError 例外投げ、ここで停止します。
  3. [39] 複製を、文脈オブジェクトURL に設定します。
  4. [40] 複製cannot-be-a-base-URL flagが設定されていれば、ここで停止します。
  5. [41] 入力基本URL構文解析を適用します。 URL複製状態上書きpath start state とします。
  6. [42] 文脈オブジェクト複製について Location-object-setter navigate を実行します。

関連#

[10] / から始まる path絶対パスといいます。

歴史#

[4] RFC 1808 の path は、 2396 では path_segments に当たります。

[2] >>1 fsegment := 1*pchar, segment := *pchar です。 最初の部分が必ず1文字ないといけないのは、 空を許すとすると abs_path//foo のようなものが認められることなり、 net_path と区別できなくなってしまうからでしょう。

[3] RFC 2396 では、 <path>abs_path 又は opaque_part のことを指します。これらは排他的なので曖昧なく区別できます。 (RFC 2396 3.)

[6] 2396 によれば、 path segment では [/;=?] 予約されています。 =引数で使われるのですが、 最初の引数のセミコロンより前では意味を持たないはずです。 それでも予約されています。

あ、よくみると、引数でも = は定義されていませんね。 つまり、引数だろうがなかろうが、経路 segment 内では =%3D は必ずしも等価ではなく、 うかつに (un)escape してはいけないということです。

[7] The Path URN Specification (1999-03-16 02:27:52 +09:00 版) http://www.hypernews.org/~liberte/www/path.html (名無しさん)

[8] urn:ietf:id:draft-ietf-uri-urn-path-01

[12] DUPLICITY(1) manual page ( 版) http://duplicity.nongnu.org/duplicity.1.html#sect7

In protocols that support it, the path may be preceded by a single slash, ’/path’, to represent a relative path to the target home directory, or preceded by a double slash, ’//path’, to represent an absolute filesystem path.

[20] JavaScript - IEはanchorタグのpathnameとlocationのpathnameで違う値を返す - Qiita [キータ] ( ( 版)) http://qiita.com/opengl-8080/items/b582bdc2b5923e7ca2aa

cloud 要素 path 属性#

[13] RSScloud 要素path 属性は、 Webサービス経路を表します RSS Best Practices Profile

[14] 仕様書:

[2] この属性RSS 2.0 でも定義されていましたが、 存在すること以外は何も規定されていませんでした。

[16] cloud 要素XML-RPC または SOAP の接続先を指定することになっています。 path 属性値はそのうち path 部分を表すもので、事実上、 HTTPURLpath を指定するものです。

[17] 理論上 SOAPHTTP 以外でも使うことができますが、 RSS がそれを想定しているかどうかは疑問で、 HTTP 以外の場合に path 属性に何を指定するのかはよくわかりません。

[22] この属性は必須です RSS Best Practices Profile

[18] 現在も RSS の仕様書には含まれていますが、 もはや誰も使っておらず、実質的に廃止状態にあります。

[44] Editorial: non-relative flag got renamed · whatwg/html@d360c27 ( 版) https://github.com/whatwg/html/commit/d360c27d44c52390441b5910d39e898160ec016d

[45] Merge effective script origin into origin · whatwg/html@8a843f2 ( 版) https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275

[46] EE: Path matching fix (#167) (Sun77789著, ) https://github.com/w3c/webappsec-csp/commit/30d0b902eab1c8ade6f6cba50aed608a5ae090b4

[47] Editorial: clarify the "shorten a path" algorithm (domenic著, ) https://github.com/whatwg/url/commit/65dcfbc17248fa761904dff42e4bd1efcff3a30f

[49] Stop decoding all %2e's in paths (annevk著, ) https://github.com/whatwg/url/commit/fbff6834a8a03576261f777d0e0afea5c1bc5a09

[50] Change path parsing for non-special URLs (annevk著, ) https://github.com/whatwg/url/commit/b087fe2ab215caf656a94b067c9a69ae78f03c8f

[51] Align <a>/<area>/Location's pathname getter with the URL Standard (TRowbotham著, ) https://github.com/whatwg/html/commit/037e082d30b21271bd410fc2f45d2b4f0bcbce9d

[54] Editorial: use the Infra Standard for URL's path (annevk著, ) https://github.com/whatwg/url/commit/2f99502dc12b781f5bf6a062257ba031c7129c1e

[57] Single and double dot segments in paths cannot be represented – Premature decoding of %2e character sequences. · Issue #281 · whatwg/url () https://github.com/whatwg/url/issues/281

[59] 記事を配信するディレクトリを変更する - はてなブログ ヘルプ () http://help.hatenablog.com/entry/import/directory

他のサービスやソフトウェアからブログを移転する際に、記事を配信するディレクトリを変更できます。

記事を配信するディレクトリとは、はてなブログの記事URL(例えばexample.hatenablog.com/entry/2016/09/01/000000)のうち、ドメイン名に続くentryの部分です。

[60] はてなブログの記事URLのカスタマイズで入力できない文字 - すなばいじり () http://psn.hatenablog.jp/entry/2017/01/10/233001

記事のディレクトリを空欄で設定して、記事の「カスタムURL」の先頭に「entry/」を追加したURLにすると、記事が読めなくなってしまう。

[61] はてなブログで「記事(/entry/)」のディレクトリが変更できるようになった - すなばいじり () http://psn.hatenablog.jp/entry/2016/09/01/160001

[62] ブラウザのキャッシュを活用する  |  PageSpeed Insights  |  Google Developers () https://developers.google.com/speed/docs/insights/LeverageBrowserCaching?hl=ja#url-

たとえば、「my_stylesheet.css」というリソースがあるとします。このファイル名を「my_stylesheet_fingerprint.css」に変更できます。リソースが変更されると、フィンガープリントも変更されるため、URL も変わります。URL が変更されるとすぐに、ブラウザはリソースの再取得を強制されます。フィンガープリントを使用すると、頻繁に変更されるリソースでも、有効期限をそれより先の方の日付に設定できるようになります。

フィンガープリントの一般的な方法として、ファイルのコンテンツのハッシュをコード化した 128 ビットの 16 進数が使用されます。

もう 1 つの方法は、アプリケーションの新しいバージョンごとに新しいリリース ディレクトリを作成して、各バージョンのすべてのアセットをバージョン別のディレクトリに格納することです。

[63] 固定ページを作成できるようにしました(はてなブログPro) - はてなブログ開発ブログ () http://staff.hatenablog.com/entry/2017/06/27/152000

ページを作成するには、まずその「URL」を指定します。URLは、はてなブログの通常の記事のカスタムURLと同じように指定できますが、記事の配信ディレクトリー(デフォルトではentry)を含まないパスを自由に作成できます。

※はてなブログのシステムで使用しているaboutやarchiveといったパス名の固定ページを作成することもできますが、表示する際にはシステムのパスが優先されます。

[64] Navigation scope: Avoid using pathname field. (mgiuca著, ) https://github.com/w3c/manifest/commit/c5d899cf9b04e8166ffb1f1a7ea2cb8cf8f5d0ca

[65] Markers  |  Maps JavaScript API  |  Google Developers (, ) https://developers.google.com/maps/documentation/javascript/markers?hl=ja

You can define a custom path using SVG path notation, or use one of the predefined paths in google.maps.SymbolPath.