HTTP协议之URL
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>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
- 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:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议. URL ...
- 以双斜杠//开头的URL – 依赖协议的URL
原文:以双斜杠//开头的URL – 依赖协议的URL 不知道大家有没有见过下面这种 url 写法: <img src="//domain.com/img/logo.png"& ...
- Html-双斜杠//开头的URL(依赖协议的URL)
今天看京东HTTPS,发现链接都是这种 <a href="//chaoshi.jd.com">京东超市</a> URL是以双斜杠"//" ...
- HTTP协议之url详解
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接.URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息 URL,全称是U ...
- Django知识点归纳总结之HTTP协议与URL
Django复习知识点归纳总结 1.HTTP协议 超文本传输协议(Hyper Text Transfer Protocol),是用于万维网服务器与本地浏览器之间的传输超文本的传送协议. HTT ...
- HTTP协议之-URL
一.URL url统一资源定位符 1.URL格式: 方案.就是指所使用的协议,类似http:// 服务器的地址,类似i.cnblogs.com/ 制定web服务器的某个资源路径 方案://服务器位置/ ...
- Http中URI协议 和URL协议的区别和联系
虽然说URL和URI是整个网络协议栈很常用的东西.可是,假如你去面试求职者其中的差别,估计十个人有八个人答复不上来. 想要熟悉基础知识的朋友最好还是看一下我这个文章. “A Uniform Resou ...
- 解析http协议的url
package util; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamRea ...
- js获取url协议、url, 端口号等信息路由信息
以路径为 http://www.baidu.com 为例 console.log("location:"+window.location.href); >> &quo ...
随机推荐
- maximum shortest distance
maximum shortest distance Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- XML学习笔记之XML的简介
最近,自学了一段时间xml,希望通过学习笔记的整理能够巩固一下知识点,也希望把知识分享给你们(描红字段为重点): XML(extensible Markup language):可扩展的标记语言,解决 ...
- html5页面实现点击复制功能
在实际工作中,有时候会遇到这样的需求,页面上有一个链接,不需要选中链接内容,只需要点击复制按钮,就可以把链接内容复制到剪切板.这时候可以使用clipboard插件来实现.以下是一个简单的demo. 首 ...
- Javascript下IE与Firefox下的差异兼容写法总结
http://www.jb51.net/article/23923.htm 总结一部分IE和Firefox的javascript差异写法,对于像书写多浏览器兼容性更好的代码,可以参考下. ...
- json标准是双引号
双引号才是json 的标准,单引号是不规范的(虽然在js 中是行的通的)!json 的名称和字符串值需要用双引号引起来,单引号的话,使用json.parse会出现错误
- 移动开发 meta元素
meta标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务. SEO优化: &l ...
- 关于Linux CentOS 7 时区时间修改问题
原文:http://blog.csdn.net/yin138/article/details/52765089 今天遇到时区的问题,操作系统为CentOS 7 1. 首先进入终端,使用su root ...
- mysql使用use db出现夯住问题
表的数目在15585个,在使用use db的时候出现夯住 从show processlist中看到一堆表在做排序,想看看这些表的表结构.使用use db之后夯住,没有办法查看. 当时没有想到怎么办,鉴 ...
- C语言系列之强制类型转换(一)
例子: #include <stdio.h> { char cChar; //字符型变量 short int iShort; //短整型变量 int ilnt; / ...
- Java compareTo() 方法
以金钱实交(realPay),和使用预存(usePurseFee)为例: if ( realPay.compareTo(usePurseFee) <=0) { XXXXXXX; }else { ...