9 "网址"--URI
URI和URL
URI:统一资源标识符(Uniform Resource Identifier)
- 有两种形式:URL 和 URN;
- URN还在实验阶段
举例:Web 服务器上的一个图片资源的URI
http://www.joes-hardware.com/specials/saw-blade.gif

URL:统一资源定位符(Uniform Resource Locator),本质是一个字符串,作用是唯一地标记资源的位置或者名字。
URL是URI的一个子集
URI详细介绍
URI的组成
scheme、host:port 、path 、query 和fragment 5个部分组成。

第一部分
- schema,“协议名”,包括 http,https,ftp,ldap,file,news 等方法
://是分隔符
第二部分
- “authority”的部分,表示资源所在的主机名
- 形式为:host:post 主机名+端口号
- 主机名,ip地址或域名
- 对于 file协议,主机名可以省略,为localhost
- 对于 http,https协议,主机名不可省略
- path 标记资源所在的位置,包含 /
第三部分
- 参数,用“?”开始,但是不包含“?”,表示对资源的额外要求
- 格式:“key=value”字符串,用“&”连接
第四部分
- 身份信息“user:passwd@” ,表示主机登录的用户名和密码
- 明文展示,有安全隐患,postman测试是可使用
第五部分
- 片段标识符“#fragment”,它是 URI 所定位的资源内部的一个“锚点”或者说是“标签”。
- 浏览器可以在获取资源后直接跳转到它指示的位置。
- 只给浏览器看,不发送给客户端。
URI的查询参数
- 方法1:使用“协议名 + 主机名 + 路径”的方式
- 方法2:适用“协议名 + 主机名 + 路径 + 参数”的方式
URI的编码
- 只能使用 ascii 编码
- 对于 ascii 字符集之外,及特殊字符使用 转义,把它们转换成与 URI 语义不冲突的形式
- 转义规则:把字符(unicode)编码成 utf-8,utf-8用1-4字节表示,每个字节转换成十六进制,前面再加上一个“%”,最后把每个字节转换后的结果拼接起来。
- 空格被转义成“%20”
- “?”被转义成“%3F”
- 中文、日文等则通常使用 UTF-8 编码后再转义,例如“银河”会被转义成“%E9%93%B6%E6%B2%B3”
疑问
HTTP 协议允许在在请求行里使用完整的 URI,但为什么浏览器没有这么做呢?
- 因为请求头字段里都有,没有必要重复。
URI 的查询参数和头字段很相似,都是 key-value 形式,都可以任意自定义,那么它们在使用时该如何区别呢?
- query 参数针对的是资源(uri),而字段针对的是本次请求,也就是报文。
- 一个是长期、稳定的,一个是短期、临时的。
9 "网址"--URI的更多相关文章
- 表单验证Jquery扩展方法类
/** 表单数据验证 **/ $.fn.Validform = function () { var Validatemsg = ""; var Validateflag = tru ...
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...
- 【5】图解HTTP 笔记
坚持.聪明.不畏困难,我将取得最后的胜利. 第一章 了解 Web 以网络基础 1. HTTP ( HyperText Transfer Protocol ): 超文本传输协议. 2. 通讯方式: 3. ...
- Webservice 实践
摘要: 实现webservice,spring ws,XFire实现方法未实现.(记得补上~) 1 概述 1.1关键技术 SOAP:简单对象存取协议.是XML Web Service 的通信协议.当用 ...
- jquery表单验证源码
/**数据验证完整性**/$.fn.Validform = function () { var Validatemsg = ""; var Validateflag = ...
- [android] 隐式意图激活另外一个activity
随着api的升级,系统的很多应用包名和类名都改掉了,所以很多时候,打开系统应用的时候会报错,隐式意图就是解决组件之间松耦合,描述动作行为 获取Intent对象,通过new出来 调用Intent对象的s ...
- 2Servlet笔记
1.静态页面(html) 2.动态 用户可以输入数据,和页面交互. 3 BS和CS的区别 BS :Browser Server(WEB 服务器) CS : Client(qq tcp/ip协议) ...
- 公用的web服务
1.http://www.webxml.com.cn/zh_cn/index.aspx 1.1.www.webxml.com.cn/WebServices/WeatherWebService.asmx ...
- jquery表单数据验证扩展方法
/** 表单数据验证 **/ $.fn.Validform = function () { var Validatemsg = ""; var Validateflag = tru ...
- 纯手写wcf代码,wcf入门,wcf基础教程
1.定义服务协定 =>定义接口 using System.ServiceModel; namespace WcfConsole { /// <summary> /// 定义服 ...
随机推荐
- 在Godot 3.X中添加触屏摇杆
开源项目地址:https://github.com/shinneider/godot_touchJoyPad 效果图: 下载项目 方法一 直接从godot assets lib下载 如图,直接下载自动 ...
- 从原理聊 JVM(五):JVM 的编译过程和优化手段
一.前端编译 前端编译就是将Java源码文件编译成Class文件的过程,编译过程分为4步: 1 准备 初始化插入式注解处理器(Annotation Processing Tool). 2 解析与填充符 ...
- 《Python魔法大冒险》009 魔法之语:字符串的奥秘
随着小鱼和魔法师的深入,他们来到了一个被薄雾笼罩的湖泊.湖中央有一个小岛,岛上有一棵巨大的古树,树上挂满了闪闪发光的果实,每一个果实上都刻着一个字母或符号. 小鱼好奇地问:"这些是什么果实? ...
- Adobe全家桶PS、PR、AU等2022正版永久有效,无需破解直接安装就能用
[Adobe全家桶]已经亲测绝对好用,下载地址: 关注我的wx公众号"奋斗在IT"回复1013获取下载地址.
- 文心一言 VS 讯飞星火 VS chatgpt (90)-- 算法导论8.3 3题
三.用go语言,利用归纳法来证明基数排序是正确的.在你所给出的证明中,在哪里需要假设所用的底层排序算法是稳定的? 文心一言: 基数排序是一种非比较型整数排序算法,其通过在每一位上进行比较来排序.基数排 ...
- Springboot中使用线程池的三种方式
前言 多线程是每个程序员的噩梦,用得好可以提升效率很爽,用得不好就是埋汰的火葬场. 这里不深入介绍,主要是讲解一些标准用法,熟读唐诗三百首,不会作诗也会吟. 这里就介绍一下springboot中的多线 ...
- MySQL高级12-事务原理
一.事务概念 事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或者撤销请求操作,即这些操作要么同时成功,要么同时失败. 二.事务特性 原子性(Atomici ...
- Nearest cluster-based intrusion detection through convolutional neural networks 笔记
Nearest cluster-based intrusion detection through convolutional neural networks 技术要点 So, the primary ...
- 基本环境安装 jdk,mq,redis,nginx
JDK:解压安装包,命令为 tar -zxvf jdk-8u381-linux-x64.tar.gz配置环境变量,使用 vim 命令(需要安装vim,安装命令为:yum install vim)修改 ...
- 其它——Postman做接口测试
文章目录 一 介绍 二 下载安装 三 使用 四 批量接口测试(创建collections) 五 导出与导入同事的接口 5.1 导出 5.2 导入 一 介绍 在前后端分离开发时,后端工作人员完成系统接口 ...
