0

URLを検証したいので、これを検索して見つけまし

ブライアンレイは彼の投稿で次のように述べています

「@Tateの答えは完全なURLには適していますが、ドメイン列を検証する場合は、正規表現で許可される余分なURLビットを許可したくありません(たとえば、パスを含むURLを許可したくない場合など)ファイルに)。

そこで、正規表現のプロトコル、ポート、ファイルパス、およびクエリ文字列の部分を削除した結果、次のようになりました。 "

彼が何を言ったのか全く分かりません。URLをファイルへのパスにするにはどうすればよいですか?「ドメイン列」とは何ですか?

4

1 に答える 1

3

URLはいくつかの部分で構成されています。次のような非常に複雑なURLがある場合:

http://www.example.com:1234/path/to/file.html?key1=value1&key2=value2

パーツは次のとおりです。

  • プロトコル:http://
  • ホスト名:www
  • ドメイン名:example.com
  • ポート:1234
  • ファイルパス:path / to / file.html
  • クエリ文字列:key1 = value1&key2 = value2

省略できない部分は、プロトコル(ただし、多くのプログラムではデフォルトでhttp://に設定できます)とホスト名だけです。各部分には、その中の合法的な文字が何であるかについての独自の要件があります。さらに悪いことに、すべてのWebサーバーがこれらの要件に同意しているわけではありません。したがって、実際に接続して失敗するかどうかを確認せずに確認できるのは、Webサーバーに接続するために必要な部分だけです。これは、プロトコル、ホストとドメインの名前、およびポートのみです。これらはすべて大文字と小文字を区別しません(残りは大文字と小文字が区別されない場合があります)。ホスト名またはドメイン名に有効な文字が何であるかはわかりませんが、これはネームサーバーが仕様に同意しない場合もあります。

つまり、URLが有効かどうかを確認する唯一の方法は、URLへの接続を試みることです。プログラムが何らかの魔法を使ってURL(または電子メールアドレス)を拒否する場合、一部の人々はあなたやそのインターネットプロバイダーを嫌うでしょう(チェックが仕様に準拠していても、一部のホスト名またはドメイン名は準拠していないため)。

URLがローカルファイルをどのように参照できるかという質問に関しては、そのための特別なプロトコルがありますfile://。パスも/で始まる必要があるため、これによりURLはのようfile:///home/user/file.htmlになり、先頭に3つのスラッシュが付きます。

于 2012-11-24T08:46:39.083 に答える