因为在平时的工作当中, 经常要和URL打交道, 所以决定对URL做了一个总结。
URL的全称是OR, 也就是大家常说的统一资源定位符。这个东西在互联网上主要就是用来标识某个具体资源的地址的。
协议的标准, 具体如下:
这是网址的组成部分, 包含了端口、路径和查询参数。
对有关该协议的全部内容分别进行详细的解释与阐述。
传输协议, 我们经常看到的传输协议有三种, 分别是HTTP、HTTPS、FTP。
域名或ip
关于端口的详细信息。
服务器上的那些端口。
===path
服务器路径
===
查询参数是以问号作为起始标志的。每个具体的参数是通过和号这个符号来进行分隔的。然后再把参数的键名和对应的值, 通过等号分割开来。
先把你要处理的那部分内容进行UTF-8编码的操作。
按照RFC 1738这一份文档的规定去要求的话, URL这个玩意儿, 它必须是得用英文里面的那些符号, 加上数字, 还有某些特定的标点符号来组成。除此之外, 是绝对不能出现其他任何的文字内容的。
因此, 凡是包含中文字符的url, 在实质上全都是非法的。为了能够实现在url中间传递中文字符的这个目的。
针对网址里面的中文部分, 是会提前进行编码这个操作的。
但是呢, 因为这个事情里头没有把那个具体的中文编码类型给说清楚讲明白, 所以目前这一块的状况是没有被定义好的。现在的状态是比较混乱的, 因为它是由网络服务提供方和那个浏览器各自独立去定义的。
比如百度会把中文转成 gbk 编码, 也会把中文转成 utf8 编码。
再比如, 系统会把中文内容转换成 GBK 这种编码格式。但是, IE 浏览器不会对非 ASCII 码的 URL 进行编码处理, 它选择直接按照当前操作系统所使用的默认编码来发送请求。
考虑到这个因素, 我们得先看第一点, 就是浏览器那边做的编码转化工作。接着要再看第二点, 也就是网站平台那边的编码转换操作。
在业内比较通用的操作方式里, 大家通常是会对中文文本执行一次utf8编码处理。
在这个编程语言里, 跟URL编码这件事儿有直接关联的函数, 主要也就包括下面这么几个。
==
对每一个对象进行编码处理, 从而让这些对象变成一种格式, 这种格式能够被所有的计算机识别并且读取。
函数签名:()
对于必选项参数这一块儿来说, 它是需要被编码的那些个任意对象中的某一个。
该方法的返回值是一个包含具体内容的字符串, 这种返回值属于特定的格式。在这些内容当中, 所有的空格、所有的标点符号、所有的重音符号以及其他的非ascii字符, 统统都用%xx这种编码来进行代替, 这里的xx等于用来表示那个对应字符的ascii值的数字。
举个具体的例子, 如果是空格的话, 最后返回的结果就是"%20"。如果遇到的字符值大于255的情况, 那么就会以%uxxxx这种专门的格式进行存储, 这里的xxxx表示的是该字符的实际数值。
大家需要格外留意一个关键事项, 那就是这个方法是不能够拿来对统一资源标识符也就是我们常说的URI进行编码操作的, 至于到底该使用哪种方法来进行编码工作, 大家可以去参考和查阅相关的具体内容以及规范说明。
和那个解码器函数相对应的, 就是那个叫做函数的玩意儿。
==
该函数可以用来处理字符串, 把这些字符串按照URI的格式进行编码操作。
函数签名为空括号。
这是一段包含统一资源标识符或者是其他需要进行编码处理的文本的字符串内容, 该方法会返回原字符串的一个副本, 这个副本里面的部分字符会被替换成对应的十六进制形式的转义序列,不过这个方法不会对 ASCII 编码范围内的字母以及数字进行编码处理。
该方法的目的在于对统一资源定位符进行完整的编码操作。故而, 对于那些在统一资源定位符里面具有特殊含义的ASCII标点符号, 也就是分号、斜杠、问号、冒号、AT符号、与符号、等号加号美元符号以及井号和逗号这一系列字符, 这个函数是决定不予以转码处理的。

此外, 也不会对这些常见的标点符号进行编码操作: 具体包括减号、下划线、点号、感叹号、波浪线、星号以及单引号和括号等。
那对应的解码函数呢, 就是现在这个了。
==
这个函数可以把字符串当成URI组件, 然后对它进行编码操作
这个函数的样子是()。
这种方法不会对ASCII字母和数字进行编码, 也不会对这些ascii标点符号进行编码, 这些符号包括连字符、下划线、感叹号、波浪线、单引号、星号以及左右括号等。
对于其他那些字符, 例如冒号、分号、问号、斜杠、艾特符号、和号、等号、加号和美元符号等等这些用于分割统一资源标识符组件的标点符号, 它们会被一个或多个十六进制的转义序列所替换。
两者的主要区别在于, 前者把参数当作统一资源定位符的一部分来看待, 比如说它可能包括协议、主机名、路径或者查询字符串。正因为如此的那个对象就必须对用于划分统一资源定位符各个组成部分的标点符号进行转义处理。
对应的解码函数为
== 总结
除了ASCII字母、数字以及一些特定的符号以外, 它会把传进去的字符串全都进行转义编码。如果你想对URL进行编码, 最好不要使用这个方法。
因为它的主要用途是对整个URI进行编码, URI里面的合法字符都不会被转换成别的码。它适合对URI的某一部分进行编码, 这样能够对中文进行转义, 而且不会影响到整个URI。
不对, @*/+ 编码。
这个说法是不对的, 您提供的内容是各种特殊符号组成的编码。
该说法存在错误, 具体涉及符号编码的问题。
是对象的方法
和, 它是js这个编程语言里面自带的一个函数。
=== 锚参数
锚参数这码子事, 它根本就不是服务器资源的一部分, 所以在理论上是绝对不会被发送给服务器的, 代码倒是可以通过那个点hash这样的写法来把锚参数给获取到。
网硕互联帮助中心



评论前必须登录!
注册