/
518.txt
64 lines (48 loc) · 3.97 KB
/
518.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
* 仕様書
[REFS[
- [1] [CITE@en[Service Workers Nightly]] ([TIME[2017-03-02 15:00:14 +09:00]]) <https://w3c.github.io/ServiceWorker/#start-register-algorithm>
- [4] [CITE@en[Service Workers Nightly]] ([TIME[2017-03-02 15:00:14 +09:00]]) <https://w3c.github.io/ServiceWorker/#update-algorithm>
]REFS]
* URL パスの階層
[6] [[URL path]]、[[HTTP(S) scheme]] を参照。
* ディレクトリーURLを得る
[2] [DFN[ディレクトリーURL]]は、[[ディレクトリー]]部分のみに限定した [[URL]] です。
[3] [[サービスワーカー]]の[[登録開始]]では、
[CODE[./]] を[VAR[URL]]に対して[[構文解析][URL構文解析]]した結果 [SRC[>>1]]
という形で[[ディレクトリーURL]]を得る操作が使われています。
[5] [[サービスワーカー]]の[[更新][更新タスク]]では、
[[URL記録]]の[F[パス][URL path]]の最後の文字列以外を [CODE[/]] で連結したもの
[SRC[>>4]] という形で[[パス][URL path]]の[[ディレクトリー]]部分の[[文字列]]を得る操作が使われています。
* HTTP(S) scheme のディレクトリー URL
[107] [[HTTP(S) scheme]] の [[URL]] の [[path][URL path]] の末尾が [CODE(URI)[[[/]]]] で終わる場合、
[[ファイル・システム]]の類似の概念になぞらえて「[[ディレクトリー]]」や「[[フォルダー]]」
と呼ぶことがあります。 [[URL]] 仕様上も [CODE(URI)@en[[[http:]]]]
[[URL]] 仕様上も「[[ディレクトリー]]」という概念は存在しませんが、そもそも
[[URL]] の「[CODE(URI)[[[/]]]]」は[[ディレクトリー]]に由来していますし、
現在でも [CODE(URI)@en[[[http:]]]] [[URL]] の [[path]] を[[ファイル・システム]]の [[path]]
に対応付けることがしばしばあるため、慣用的に用いられています。
[108] [CODE(URI)@en[http://example/a/]] という[[ディレクトリー]]と
[CODE(URI)@en[http://example/a]] は同じではありません。前者が存在しても、
後者は存在しないかもしれません。ですが、実際には [[HTTP]]
を[[ファイル・システム]]に対応付けるよう[[鯖]]が設定されている場合には後者から前者へと[[リダイレクト]]されるのが普通です。
[109] [[ディレクトリー]]は [CODE(URI)[[[/]]]] で終わるのが正式である (ことが多い) のでそちらの [[URL]]
を使うべきだとの意見や、無駄な[[リダイレクト]]が発生するから [CODE(URI)[[[/]]]]
で終わり[[リダイレクト]]されない [[URL]] を使うべきだとの意見もあります。
[120] [[ファイル]]から[[ディレクトリー]]に途中で変えたくなる場合、あるいはその逆の場合があり得ること、
あるいは並列な[[ファイル]]/[[ディレクトリー]]が混在する場合に一貫した [[path]]
にしたいといったような理由により、 [CODE(URI)[[[/]]]] を付けない方に統一するべきだという意見もかつてはありましたが、
最近は聞かなくなりました。
[41] [[ディレクトリー]]が[[ファイルシステム]]に[[写像]]される場合、
特定の名前の[[ファイル]]があれば、[[ディレクトリー]]へのアクセス時にその[[ファイル]]が返されるように実装・設定されていることがよくあります。
そのような[[ファイル]]の名前としてよく使われるものには、次のものがあります。
どれが使われるかは実装や設定に依存します。
[FIG(list short)[
- [CODE(file)[[[index.html]]]]
- [CODE(file)[[[index.htm]]]]
- [CODE(file)[[[default.htm]]]]
- [CODE(file)[[[Overview.html]]]]
]FIG]
* [DFN[ディレクトリーの比較]]
[7] [[サービスワーカー]]の[[更新][更新ジョブ]]
[11] [[隣接異体]]の定義では、[[HTTPにおけるURLの比較]]を用いつつ、
[[ディレクトリー]]部分までの[[パス]]の一致を使っています。