1. URL理解

下面是一些URL的示例:

https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
https://developer.mozilla.org/en-US/search?q=URL

您可以将上面的这些网址输进您的浏览器地址栏来告诉浏览器加载相关联的页面(或资源)。

一个URL由不同的部分组成,其中一些是必须的,而另一些是可选的。让我们以下面这个URL为例看看其中最重要的部分:

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocumentProtocol

http 是协议。它表明了浏览器必须使用何种协议。它通常都是HTTP协议或是HTTP协议的安全版,即HTTPS。Web需要它们二者之一,但浏览器也知道如何处理其他协议,比如mailto:(打开邮件客户端)或者 ftp:(处理文件传输),所以当你看到这些协议时,不必惊讶。

www.example.com 是域名。 它表明正在请求哪个Web服务器。或者,可以直接使用IP address, 但是因为它不太方便,所以它不经常在网络上使用。.

:80 是端口。 它表示用于访问Web服务器上的资源的技术“门”。如果Web服务器使用HTTP协议的标准端口(HTTP为80,HTTPS为443)来授予其资源的访问权限,则通常会被忽略。否则是强制性的。

/path/to/myfile.html 是网络服务器上资源的路径。在Web的早期阶段,像这样的路径表示Web服务器上的物理文件位置。如今,它主要是由没有任何物理现实的Web服务器处理的抽象。

?key1=value1&key2=value2 是提供给网络服务器的额外参数。 这些参数是用 & 符号分隔的键/值对列表。在返回资源之前,Web服务器可以使用这些参数来执行额外的操作。每个Web服务器都有自己关于参数的规则,唯一可靠的方式来知道特定Web服务器是否处理参数是通过询问Web服务器所有者。

#SomewhereInTheDocument 是资源本身的另一部分的锚点. 锚点表示资源中的一种“书签”,给浏览器显示位于该“加书签”位置的内容的方向。例如,在HTML文档上,浏览器将滚动到定义锚点的位置;在视频或音频文档上,浏览器将尝试转到锚代表的时间。值得注意的是,#后面的部分(也称为片段标识符)从来没有发送到请求的服务器。

你可能想到一个URL类似普通信件的地址:协议代表你要使用的邮政服务,域名是城市或者城镇,端口则像邮政编码;路径代表着你的信件所有递送的大楼;参数则提供额外的信息,如大楼所在单元;最后,锚点表示信件的收件人。

如何使用URL?
可以直接在浏览器的地址栏里输入任何URL,来获得后台的资源。但是这仅仅是冰山一角。

2. 绝对URL和相对URL

我们上面看到的是一个绝对的URL,但也有一个叫做相对URL的东西。我们来看看这个区别意味着什么呢?

URL的必需部分在很大程度上取决于使用URL的上下文。在浏览器的地址栏中,网址没有任何上下文,因此您必须提供一个完整的(或绝对的)URL,就像我们上面看到的一样。您不需要包括协议(浏览器默认使用HTTP)或端口(仅当目标Web服务器使用某些异常端口时才需要),但URL的所有其他部分都是必需的。

当文档中使用URL时,例如HTML页面中的内容有所不同。因为浏览器已经有文档自己的URL,它可以使用这些信息来填写该文档中可用的任何URL的缺失部分。我们可以通过仅查看URL的路径部分来区分绝对URL和相对URL。如果URL的路径部分以“/”字符开头,则浏览器将从服务器的顶部根目录获取该资源,而不引用当前文档给出的上下文。

我们来看一些例子来使这个更清楚。

2.1 绝对URL示例

完整网址(与之前使用的网址相同

https://developer.mozilla.org/en-US/docs/Learn

隐去协议

//developer.mozilla.org/en-US/docs/Learn

在这种情况下,浏览器将使用与用于加载该URL的文档相同的协议来调用该URL。

隐去域名

/en-US/docs/Learn

这是HTML文档中绝对URL最常见的用例。浏览器将使用与用于加载托管该URL的文档相同的协议和相同的域名。注意:不可能省略该域名而不省略协议。

2.2 相对URL示例

为了更好地了解以下示例,我们假设从位于以下URL的文档中调用URL:

 https://developer.mozilla.org/en-US/docs/Learn

子资源

Skills/Infrastructure/Understanding_URLs

因为该URL不以/开头,浏览器将尝试在包含当前资源的子目录中查找文档。所以在这个例子中,我们真的想要达到这个URL https://developer.mozilla.org/en-US/docs/Learn/Skills/Infrastructure/Understanding_URLs

回到目录树中

../CSS/display

在这种情况下,我们使用从UNIX文件系统世界继承的…/写入约定来告诉我们要从一个目录上升的浏览器。在这里,我们要达到以下URL:https://developer.mozilla.org/en-US/docs/Learn/../CSS/display,可以将其简化为:https://developer.mozilla.org/en-US/docs/CSS/display

什么是URL、绝对URL和相对URL相关推荐

  1. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  2. java url接口_javaweb 后台使用url接口

    String GET_URL="https://wx.hguard.cn:8075/queryProfiledataAction.action?phone="+phone+&quo ...

  3. 利用正则匹配url是否合法对于有的url会浪费过长时间使程序卡死,切记!

    改进:改成匹配url是否为以某个结尾的,至于非法的url就让Jsoup.connect(url)把异常抛弃 //启动该正则匹配特别的慢 // public static String regex = ...

  4. url 函数 php,php中url处理函数总结

    在php中url处理函数有很多,如有:http_build_query,compact,urldecode.urlencode,parse_url,rawurldecode等等函数. http_bui ...

  5. html截取url字段,Html中截取url参数 实现HTML间的url传值

    大家好: 今天遇到一个问题,页面全是html,url传值,竟然获取不到参数值: A.html //登录按钮 jQuery(function($) { $("#login").cli ...

  6. java.net.url 中文乱码_jsp get Url请求方式中文乱码问题解决办法

    本文章来给大家介绍关于jsp get Url请求方式中文乱码问题解决办法,有需要的朋友可参考. jsp中post方式请求一般不会乱码,如果乱码加上这句: 解决办法一 代码如下 复制代码 request ...

  7. android 本地地址转换为url,android本地mipmap图片转url、绝对路径转URL URL URI File Path 转换...

    标签: url uri file path File to URI: File file = ...; URI uri = file.toURI(); File to URL: File file = ...

  8. JAVA中url的特殊字符处理及url转码解码

    在url中 , 只能使用url合法的字符 . 如果使用了非法字符来访问某资源(如:+#等) , 就会导致资源访问异常或失败 . 同时原生url中也是不支持中文的 , 以百度为例 , 当你搜索了中文关键 ...

  9. CDN > 域名管理 > 访问控制 > URL鉴权配置 > URL鉴权

    URL鉴权 更新时间:2020-03-05 18:09:03 编辑我的收藏 URL鉴权功能主要用于保护用户站点的资源不被非法站点下载盗用.通过防盗链方法添加Referer黑名单和白名单的方式可以解决一 ...

  10. 在URL中使用另一个url作为参数时会被``截断的问题

    在URL中使用另一个url作为参数时会被&截断的问题 下午帮同事写一个url转二维码的小工具时,发生标题中描述的问题.比如:输入的url是http://www.example.dev/name ...

最新文章

  1. 如何用Python和BERT做中文文本二元分类?| 程序员硬核评测
  2. jQuery的jquery-1.10.2.min.map触发404(未找到)
  3. 汇编和python-python语言属于汇编语言吗?_后端开发
  4. java字符串转日期_JAVA字符串转日期或日期转字符串
  5. 注意!!一定要谨慎使用c/c++原生指针
  6. Matlab控制精度
  7. ACM/ICPC 之 Floyd练习六道(ZOJ2027-POJ2253-POJ2472-POJ1125-POJ1603-POJ2607)
  8. 作者:王雨华(1970-),男,中国科学院昆明植物研究所研究员、副所长
  9. webapi输出炜json_.Net基于MVC4 Web Api输出Json格式实例
  10. java 类型推导_Java10类型推导
  11. 直接保存 DataFrame 表格到本地,这个“骚操作”你还不知道?
  12. 检测到JSON.NET错误类型的自引用循环
  13. bzoj 4873: [Shoi2017]寿司餐厅 [最小割]
  14. 打开FOXMAIL常见错误提示“Message format error”
  15. 捋一捋Condition
  16. yaml-cpp保存标定文件-Node/Emitter
  17. 计算机在运行 显示器出现黑屏,显示器黑屏但电脑一直在运行是什么原因
  18. 经管保研|2022复旦经院推免研究报告
  19. STL剖析(二):容器底层数据结构及常见用法
  20. win10 通过命令打开画图工具

热门文章

  1. python中6 2是什么意思_python2.6中SyntaxError是什么错误?
  2. MongoDB(4.0)分片——大数据的处理之道
  3. 运维学习之nfs系统文件服务
  4. bootstrap Table API和一些简单使用方法
  5. 《深入理解Elasticsearch(原书第2版)》——第2章 查询DSL进阶 2.1 Apache Lucene默认评分公式解释...
  6. VC++ 判断文件或文件夹是否存在的快捷方法 _access
  7. 再译《A *路径搜索入门》之一
  8. 开启Windows7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP)
  9. 用Leangoo看板工具策划一场活动,看板示例
  10. 云计算架构设计6大原则,你遵循了吗?