HTTP协议之URL
来源:互联网 发布:vb if 不等于 编辑:程序博客网 时间:2024/05/23 18:31
1.什么是URL
URL的全称是Uniform Resoure Locator,统一资源定位器。URL是浏览器寻找信息时所需的资源位置。当一个人将浏览器指向一个URL,浏览器就会在幕后发送适当的协议报文来获取人们所期望的资源。说到URL就不得不说下URI与URN这总是伴随出现的概念。
URI的全称是Uniform Resource Identifier,统一资源标识符。
URN的全称是uniform resource name,统一资源命名。
显然,URI是一个更加抽象的概念,定义了资源的唯一性标识,而URL与URN是他的两种实现。前者根据具体位置定位资源,后者根据名称定位资源。而HTTP协议处理的基本上都是URL。
URL的出现整合了互联网资源的获取方式,使得资源的获取方式都变得明朗起来。
2.URL语法
URL语法可以归纳到下面的通用格式上:
://:@:/;?#
scheme:方案名,常见的是http/https/ftp/mail等协议。方案名是大小写无关的,即http://www.baidu.com与HTTP://www.baidu.com是等价的。
user:用户名,在http协议中比较少见,默认值是匿名用户”anonymous”
password:密码,与上面的user性质相同。在ftp协议中是比较常见的,比如ftp://user:password@ftphost/download。如果不指定密码,不同的浏览器实现会发送不同的默认密码。
host:主机,资源的具体承载机器。一般使用域名或者IP来表示,使用IP的可以直接定位到具体机器,而使用域名的需要经过DNS解析后获得IP。
port:端口,机器上的具体应用。在一台机器上一个端口对应一个应用,有了host+port就定位到资源的具体应用上了。http协议的默认端口是80,https的默认端口是443。
path:路径,资源的分级目录。类似于文件系统的路径,可以使用多个/进行层级分割,每层都可以跟参数。
params:路径对应的参数,不常用但合法。比如:http://www.baidu.com/china;type=a/beijing;degree=b
query:查询字符串,与后端程序交互的关键,以?开始。比如:http://www.baidu.com?item=a&color=b
frag:片段,也叫锚点。前面部分可以定位到具体某个资源文件,片段用来标识具体哪一个部分。而片段是不会发送给服务器的,服务器返回整个对象,浏览器根据片段来展示不同效果。
3.URL字符集
URL是可移植的,所以为保障安全传输,要选用较小的、通用的字符集。
URL要有可读性,所以不可见,不可打印的字符也不能使用在URL中。
URL要有完整性,能包含各种复杂的含义,所以通过转义机制将不安全的字符编码转移为安全的字符编码。
介于上述原因,URL的设计者采用了US-ASCII编码,同时引入了转移序列的概念。具体的转译方法就是,将不安全的字符使用一个百分号%,后面跟着两个表示字符ASCII码的十六位进制数。比如空格对应ASCII码为32,所以转义后为%20。
而对于中文字符,则进行这样不同的处理。由于2个十六位进制数是一个字节的长度,所以就是将不安全字符对应的二进制按照字节划分,每个字节前跟了一个%。比如“你好”的十六进制数是e4bda0e5a5bd,经UrlEncode后就是%e4%bd%a0%e5%a5%bd。
- HTTP协议之URL
- HTTP协议之URL
- HTTP协议之URL
- HTTP协议之URL
- http协议详解之url篇
- HTTP和URL协议
- URL&HTTP协议
- URL与http协议
- HTTP协议 (二) URL
- HTTP协议的URL介绍
- http协议与URL协议详解
- HTTp基础之URL
- HTTP之URL
- JSP协议之HTTP协议
- 协议系列之HTTP协议
- http协议之http响应
- HTTP协议之HTTP消息
- http协议访问tracker的URL
- 推荐一个在线编程的网站
- asp.net如何在图片上加水印文字具体实现
- docker 安装tensorflow
- 逻辑的计算进路--从莱布尼茨到图灵的逻辑发展
- ResourceBundle 的一种使用方法
- HTTP协议之URL
- IT的道德与伦理
- 逻辑回归实战 — Kaggle_Titanic 2
- banner的使用。
- 【读书笔记】iOS-iOS定位
- linux学习笔记
- python基础(二)基础语法
- Android Wifi模块
- jquery正则表达式写法