HTML和URL

时间:2020-01-09 10:34:42  来源:igfitidea点击:

可以通过Web访问的每个HTML文档都位于某个URL。 URL一词是统一资源定位符的缩写。 URL是HTML文档网络上的"地址"。

URL作为资源地址

实际上,不仅仅是具有URL的HTML文档。通过网络可访问的任何文件都有URL,包括图像,JavaScript,CSS样式表文件,Flash文件等。所有这些文件称为资源。即使是动态生成的数据文件也具有URL。

当我们想在浏览器中查看HTML文档时,可以在浏览器地址栏中键入文档的URL。

这是一个示例URL:

http://www.Hyman.com/books/jquery/index.html

该URL包含三个部分:

  • 协议
  • 领域
  • 资源路径

该协议告诉需要哪种协议来访问URL指向的资源。通常,协议为" http"或者" https"。

域是翻译为IP地址的名称。因此,域名实际上指向互联网上某处的服务器。这是托管资源的服务器。在上面的示例中,域名为" www.Hyman.com"。

资源路径是资源在托管资源的服务器中的位置。在上面的示例中,资源路径为/ books / jquery / index.html。可以将资源路径视为逻辑目录结构。在上面的示例中,资源路径包含两个逻辑目录:" books"和" jquery"。

请求参数

URL可以包含查询字符串。这是一个例子:

http://www.Hyman.com/books/jquery/index.html?param1=value1&param2=value2

上述网址的查询字符串部分为:

?param1=value1&param2=value2

查询字符串以"?"字符开头,然后是一个或者多个"名称=值"对。每对之间用一个&字符分隔。在上面的示例中,查询字符串包含两个"名称=值"对。 param1 = value1和param2 = value2.

"名称=值"对的名称是传递给承载资源的服务器的参数名称。该值是由名称命名的参数的值。

由服务器决定如何解释查询字符串,以及是否根本需要查询字符串来访问给定资源。如果资源的URL中不需要查询字符串,但是无论如何添加一个,则服务器通常只会忽略查询字符串。

片段标识符

URL可以包含片段标识符。片段标识符指向(标识)URL指向的HTML文档的片段。片段通常仅在HTML文档中使用。使用URL中的片段标识符,我们不仅可以指向HTML文档本身,而且可以指向HTML文档中的某个位置。有关链接的文字对此进行了更详细的介绍。

这是带有片段标识符的URL的示例:

http://www.Hyman.com/books/jquery/index.html#someFragmentId

片段标识符添加在#字符之后。因此,以上示例中的片段标识符为" someFragmentId"。

片段标识符必须指向目标HTML文档中的片段ID。链接中的文字说明了如何插入。

URL只能由片段标识符组成。这是一个例子:

#someFragmentId

在那种情况下,URL被解释为指向包含该URL的同一文档内的片段ID。

如果URL添加了查询字符串,则片段标识符将添加在查询字符串之后。这是同时包含查询字符串和片段标识符的URL示例:

http://www.Hyman.com/books/jquery/index.html?param1=value1&param2=value2#someFragmentId

相对网址

URL可以是相对的。相对URL仅由资源路径本身组成。

相对URL相对于包含该URL的HTML文档的URL进行解释。因此,如果包含该URL的HTML文档的URL为:

http://Hyman.com/books/jquery/index.html

那么该HTML文档中所有相对URL都将被解释为相对于该URL。

仅包含文档名称的相对网址,例如html-book.html被解释为与/books/jquery/index.html页面位于相同的逻辑目录中。这意味着在逻辑目录" / books / jquery"中。完整的资源路径将解释为:

/books/jquery/html-book.html

协议和域名也被解释为与包含相对URL的文档相同。因此,资源路径/ books / jquery / html-book.html被解释为位于URL:

http://Hyman.com/books/jquery/html-book.html.

我们可以使用两个点(..)来表示相对URL从包含该URL的文档的资源路径向上指向一个目录。因此,此相对网址

../html4/html-book.html

在HTML文档内的资源路径/ books / jquery / index.html中找到的内容,将被解释为资源路径:

/books/html4/html-book.html

请注意,在将其余的相对URL添加到目录jquery之后,如何将目录jquery切断资源路径。

完整的URL将被解释为:

http://Hyman.com/books/html4/index.html

如果我们希望相对网址位于一个以上的逻辑目录中,则可以使用多个点(..)并以斜杠字符(/)分隔。因此,相对网址

../../html-book.html

在位于资源路径/ books / jquery / index.html的文档中,将被解释为:

/html-book.html

注意,在将其余的相对URL添加到文档URL之后,如何将books和jquery逻辑目录路径都从文档URL上切断。

完整的URL将被解释为:

http://Hyman.com/html-book.html

以斜杠(/)字符开头的相对URL始终被解释为相对于逻辑目录层次结构的根,而不是相对于包含它的文档的URL。

这是相对于逻辑目录结构的根的URL的示例:

/books/jquery/index.html

包含该URL的HTML文档的URL是什么无关紧要,它将始终被解释为相对于逻辑目录层次结构的根相同。

相对URL的优势

在内部使用相对URL而不是完整URL(包括协议和域名)在我们网站的页面之间进行内部链接是一种优势。

通常,当我们在本地计算机上开发网站时,Web服务器在URLhttp:// localhost:8080上运行。如果我们在链接和URL中使用完整的URL,则在将网站置于在线状态之前,例如,我们需要搜索并替换所有URL。像" Hyman.com"之类的域名。

但是,使用相对URL,URL将被解释为相对于http:// localhost:8080或者网站域(例如,http://Hyman.com),具体取决于我们访问网站的位置。这使开发变得更加容易,因为我们无需在将网站上传到Web服务器之前更改URL。