1

以前、特定の Web サイトで問題に直面しました。他のサイトへのハイパーリンクが多数あります。たとえば、そのような URL の 1 つを次に示します。

http://http//example.com/a9noaa.asp

明らかに間違った ( http2 回来る) URL であるため、クリックすると「アドレスが見つかりません」などのページ エラーが発生します。

しかし、リンクの場所をコピーしてブラウザのロケーション バーに貼り付けると、その新しいページが正しく読み込まれます。したがって、ハイパーリンクに記載されている URL が正しくないという問題があります。

次のようなチェックのように、アクセスされている URL の基本的な健全性をブラウザにチェックさせることは可能ですか?

  • 単語httpは一度だけ存在し、
  • コロンが正しく入力されている、
  • URLの先頭に異常な文字がないこと、
  • 二重バックラッシュが正しく存在するなど。

または、アドレスバーに入力された URL が自動的にエラーを修正することはありますか?

インターネット ブラウザにこの機能を実現させるクライアント側のコードはありますか? 出来ますか?

または、これを実現するための一般的なブラウザ (Firefox、IE) 用のプラグインは既に利用可能ですか?

ありがとうございました。

-広告。

4

3 に答える 3

5

まず第一に、http://http//example.com/a9noaa.asp httpスキームとして、第二httpはホスト名と//example.com/a9noaa.aspパスとしての有効なURIです。したがって、無効でない場合、ブラウザはそれを修正する必要はありません。

次に、ロケーションバーを見てみましょう。入力された場所が無効な場合、ほとんどのユーザーフレンドリーなブラウザはエラー訂正を行います。その修正手段の1つは、文字列がhttp://存在しない場合は、文字列の前に文字列を追加することです。したがってexample.com、リクエストするには入力する必要がありますhttp://example.com
もう1つの修正方法は、入力された文字列の前後http://www.で不明なホスト名を完成させることです。.comしたがってexample、入力してEnterキーを押すだけで、リクエストできますhttp://www.example.com

ただし、ロケーションバーの外側のエラー修正は、特にハイパーリンクで重要になる可能性があります。たとえば、ゲストはゲストブックのエントリに自分のWebサイトのURIを入力しますが、を省略しhttp://ます。現在、その値はハイパーリンクで使用されていますが、欠落しているhttp://ものにはプレフィックスが付いていません。したがって、リンクは次のようになります。

<a href="example.com">Website</a>

このようなリンクをクリックすると、そのリンクの相対URIは、現在のドキュメントのURIをベースとして使用して絶対URIに解決されます。したがって、リンクはに展開される可能性がありますhttp://some.example/guestbook/example.com。誰がそれを経験していませんか?

しかし、ブラウザにないものを修正することhttp://は致命的です。なぜなら、オーサーは 、ブラウザーが期待するhttp://some.example/guestbook/example.comのではなく、参照することを意図していた可能性があるからです。http://example.com

まとめると、次のようになります。不足しているものがある場合に適したユーザーのロケーションバー入力を修正します(例:)http://。しかし、すべてのリンクでそれを行うことはそうではありません。

于 2009-07-04T12:49:35.287 に答える
1

あなたが投稿した URL は「間違っている」のではなく、有効です。ホスト名は、http://localhost/またはhttp://http/より一般的なものと同様に、多くの形式をとることができますhttp://example.com

または別のプロトコルを Web リンクに含めない場合http://、ブラウザは相対リンクを使用していると見なします。例えば...

<a href="www.example.com">link</a>

... にリンクします。http://yoursite.com/www.example.comこれは完全に有効な URL であるため、ファイルに名前を付けることができますwww.example.com

問題のウェブサイトに連絡して、エラーを修正することをお勧めします。これを自動的に修正するブラウザはありません。

于 2009-07-06T16:10:01.640 に答える
0

不正な形式のURLを修正するのは、実際にはブラウザ次第ではありません。URLは、あるページの一意の識別子であると想定されています。ページへのリンクを行う人は、正しいページにリンクするように注意する必要があります。URLを開くことに関係する当て推量があってはなりません。

とはいえ、一部のブラウザは他のブラウザよりも優れています。私の頭のてっぺんから、IEは " localhost:8888/test"(プロトコルが与えられておらず、標準ポート80でもない)を理解できないと思いますが、Firefoxは少なくとも" http://localhost:8888/test"を介してそれにアクセスしようとします。この種の最良の推測による空白の埋め合わせは問題ないと思います。それ以上の自動修正はやりすぎになるでしょう。

たとえばSafariは、ドメイン名を自動推測しようとします。「apple/safari」でDNSエラーが発生した場合、「」へのアドレスを自動的に入力しようとしますapple.com/safari。あなたのURLでそれはそれを""に完成させようとするかもしれません、そしてそれは存在するhttp://http.com//example.com/a9noaa.aspならばページを生み出すかもしれませんhttp.com。それを行う方法は1つではないため、まったく行わないでください。

于 2009-07-04T12:50:41.790 に答える