2015-09-18 14 views
6

絶対httpまたはhttps URLを仮定します。私はパスの前に来るURLの部分のための "公式"または一般的に受け入れられた名前を探しています。URL「スキームと権限」の正式名称

http://foo:[email protected]:8042/over/there?name=ferret#nose 
    \_____________________________/ 
        | 
       this part 

RFC 3986次のようにURLの構文部分を定義:

http://foo:[email protected]:8042/over/there?name=ferret#nose 
    \__/ \______________________/\_________/ \_________/ \__/ 
     |    |    |   |  | 
    scheme   authority   path  query fragment 

RFC 6454はトリプル(スキーム、ホスト、ポート)とURLの原点( "同起源" のように)定義:

http://foo:[email protected]:8042/over/there?name=ferret#nose 
    \__/   \______________/ 
     \________________/ 
       | 
      origin 

このように、どちらの用語も適切ではありません。私が見ている部分に良い言葉があるのですか、あるいは「スキーム(プラス://)+権限」と付き合っていますか?

答えて

5

実際には、パスの前に来るURLの部分のcurrent URL standardの名前は、実際にはの起源です。

URLの://一部を消費したり(もちろん、低レベルのパーサ以外の)プロセスのURLは何の実際の行動についての議論に言及する任意の実際の必要がことはないということだけで、構文(または字句?)アーティファクトであります。

username-passwordの部分は不適合の誤った部分です。これは、過去のエラーとして議論する場合にのみ役立ちます。 relevant part of the current URL standardにはこれについて言いたいことがあります。

URL文字列内にURL レコードのユーザー名またはパスワードを表すための準拠した方法はありません。

だから、再び現在の規格は、URLを定義する方法に合わせたURLの任意の通常の議論のため実際には、それだけで四つの部分という最高レベルの部品の面で、単にURLについて話すのに十分だ:その起源、その経路、そのクエリ(部分)、およびその部分(部分)。

確かにそれは少なくともcurrent URL standardがそれを制限するものです。

+0

"起源"は、構文的な部分のための何かが必要なときの言葉として役に立たない。 (また、 "userinfo"の廃止予定は、公式のURI仕様に基づいていることに注意してください) –

+0

WhatWG URL標準を私に指摘してくれてありがとう。しかし、私はWhatWGの目標に感心していますが、URLにはuserinfoを含めてはいけないと言っていますが、Wh​​atWGは原点を明示的にユーザー名とパスワードを除外して定義しています。 –

1

「スキームプラス権限」でなければなりません。あなたはスキームと権威を持つ有効なURIを持つことはできないので、その組み合わせは議論の単位としてはあまり出てこないので、名前で終わることはありません。

また、userinfoはHTTP URIで許可されていないことにも注意してください。特定のスキームは、特定の部分の値を禁止または制限することができる。いくつかのブラウザにはuserinfoとbase認証ヘッダーを受け入れる設計上の欠陥がありましたが、ほとんどの場合、少なくとも許可されていれば、これについては少なくとも警告するでしょう。

+0

ええ、そうです。userlinfoはHTTP URLで許可されていませんでした(奇妙なことに) "今"は許可されていないと言います(本当に強く非難していますが)。とにかく、HTTPはブラウザの外に存在し、userinfoはまだかなり死んでいません。しかし、それは "起源"という言葉を使用するケースを強化します。 –

+0

ブラウザの外では、userinfoはさらに強く禁止されていますが、ブラウザにはuserinfo部分を濫用した設計上の欠陥があり、続行する前に実際のHTTP URIに変換します。他のHTTPソフトウェアはそれをしません。 –

+0

Err、 'curl'、' wget'、 'hg'、' git'、HTTPを使ってもっと多くの難解なツールに伝えてください。 –