URL与资源
概述
URL(统一资源定位符)就是因特网资源的标准化名称。URL指向一条电子信息片段,告诉你它们位于何处,
以及如何与它们进行交互。
本章主要内容
1、URL语法,以及各种URL组件的含义及其所做的工作(重点)
2、很多web客户端都支持URL快捷方式,包括相对URL和自动扩展URL
3、URL编码和字符规则(重点)
4、支持各种因特网信息系统的常见URL方案
5、URL的未来
2.1因特网资源
三个资源概念
URI:统一资源标识符,抽象集合
URL:统一资源定位符(目前主流使用)
URN:统一资源名(未来展望)
URI是一类更通用的资源标识符,URL其实是其一个子集。http应用程序通常使用URL来定位资源.
URL主要由以下三部分组成
1、URL方案:方案可以告诉客户端以什么方式访问资源,比如http、ftp等方案。
2、服务器地址:这部分告诉客户端资源位于何处
3、资源路径:请求的是服务器上哪个特定的本地资源
所以大多数URL格式如下
方案://服务器位置/文件路径
例如:http://192.168.0.23:8080/webapp/testUrl.html
2.2URL语法
URL语法格式
大多数URL方案的URL语法都建立在这九个部分构成的通用格式上
<scheme>://<user>:<password>@<host>:<port>/path;<param>?<query>#<frag>
方案:使用什么协议(http、ftp等)
主机和端口:服务器地址和监听端口(http默认80)
用户名和密码:有些服务器访问是需要验证用户名和密码的(ftp://xuyi:mypassword@ftp.prep.ai.mit.edu/pub/gnu)
路径:指的是资源位于服务器什么地方
参数:对很多方案来说只有简单的主机名和端口以及资源路径是不够的,还需要一些参数信息才能工作,例如ftp有两种传输模式,
二进制和文本形式,我们就需要请求资源时指定传输模式。
查询字符串:其作用通常是用来作过滤和筛选条件的。(http://localhost:8080/webapp/users?uid=xxx&age=xx)
片段:有些资源类型,比如html除了资源级之外还可以做进一步划分,尤其是对那种大型文本文档而言划分片段会更清晰。
2.3URL快捷方式
2.3.1相对URL
即相对路径,通常是同服务器下的资源才可以使用,在web开发中使用还是比较多的。
2.3.2自动扩展URL
通常大多数浏览器都具有此功能,就是用户在浏览器中不需要输入完整的URL地址,浏览器才能解析成功。
自动扩展主要有两种方式
主机名扩展
即用户输入baidu,浏览器就会自动扩展为www.baidu.com
历史扩展
即用户输入http时下拉框就会出现很多匹配链接
备注这两种方式其实都是浏览器借助了缓存来和正则匹配实现的。
2.4URL编码
URL默认使用的ASCII编码方式,由于http的发展URL中可能会包含ASCII码之外的字符或二进制数据,
因此选哦一种转义机制,能够将不安全的字符编码转为安全字符再进行传输。
java开发中如果要编码和解码URL时通常会借助URLDecode和URLEncode
2.5方案的世界
http 超文本传输协议方案,默认端口80
https 和http方案是一对,唯一的区别在于https使用了网景的SSL,SSL为http连接剔骨那的端到端的加密机制。默认端口443
ftp 文件传输协议,可以用来从ftp服务器上下载和上传文件 默认端口21
telnet 该方案是用于访问交互业务,默认端口23
2.6未来展望
URL的缺点当服务器位置发生变化的时候,那么客户端访问的URL也要改变否则就无法访问到原先能访问到的资源。
URN(统一资源名)就有这样的想法希望能够达到即使服务器位置发生变化,对客户访问依然不影响,
这势必在服务器和资源文件之间再加一层才能隔离这种影响,因此从技术复杂度上来说显然就更加困难推广难度也比较大.
目前URL非常的普及要想推翻重来几乎不可能,连http2的推广都那么费劲。
总结
URL绝对是http协议中重要的一环,在之后restful架构设计时,很大程度我们就是在命名和定义我们url。