path

パス (URL)

仕様書

意味

[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>