2009-07-04 5 views
1

私は特定のウェブサイトに戻って問題に直面しました。それは他のサイトに多くのハイパーリンクを与えています。例えばそのようなURLは次のとおりです。これは、1つは、それをクリックしたときに「アドレスが見つかりません」のようなページエラーがある明らかに(httpが二回来て)間違ったURLであるブラウザは自動的に "mangled url"を修正できますか?

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

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

それをチェックするようにアクセスされているURLの基本的な健全性のために、ブラウザのチェックを行うことが可能になります。

  • 言葉httpには珍しい
  • 、一度だけ、
  • コロンが正しい型付けされた存在ではありませんなどURLの先頭の文字、
  • ダブルガタが正しく存在している、

URLがアドレスバーに入力され、自動的にエラーを修正するかどうかを確認します。

インターネットブラウザーでこの機能を実現するためにクライアント側のコードを使用することはできますか?出来ますか?

これを実現するために既に使用されている一般的なブラウザ(Firefox、IE)用のプラグインはありますか?

ありがとうございます。

-AD。

答えて

5

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

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

しかし、特にハイパーリンクでは、ロケーションバー以外のエラー修正が重要になる可能性があります。たとえば、次のようにします。ゲストは自分のウェブサイトのURIをゲストブックのエントリに入力しますが、http://は表示されません。その値はハイパーリンクで使用されますが、不足しているのはhttp://です。だから、リンクは次のようになります。

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

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

ただし、ブラウザに紛失したhttp://は致命的です。著者は、http://example.comの代わりにhttp://some.example/guestbook/example.comを参照することを意図していた可能性があります。

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

+0

@Gumbo:しかし、http://http//example.com/a9noaa.aspはまだ間違っているURLなので、私は彼がそれが想定されているページに連れて行かない!だから私はそれが無効なURLではないと言うとき理解していない? – goldenmean

+0

@ goldenmean私は、URLが構文的に有効であることを意味しました。 – Gumbo

+0

@ Gumbo:イントラネットでは "http:// http/..."に何かがあった場合は有効です。 URLがあなたをあなたに連れて欲しい場所に連れて行ってくれないという事実は、それを無効にしません。 – deceze

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

投稿したURLが「間違っていません」、有効です。あなたは、ブラウザを使用すると、相対リンクを使用していると仮定し、Webリンクにhttp://または別のプロトコルが含まれていない場合は、ホスト名は、このようなhttp://localhost/http://http/など多くの形態をとるだけでなく、より一般的なhttp://example.com

ことができます。これは完全に有効なURLであるため、例えば...

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

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

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

関連する問題