URL字符编码

URL字符编码

URL介绍

概述

URL 是“统一资源定位符”(Uniform Resource Locator)的首字母缩写,中文译为“网址”,表示各种资源的互联网地址。

所谓资源,可以简单理解成各种可以通过互联网访问的文件,比如网页、图像、音频、视频、JavaScript 脚本等等。只有知道了它们的 URL,才能在互联网上获取它们。

只要资源可以通过互联网访问,它就必然有对应的 URL。一个 URL 对应一个资源,但是同一个资源可能对应多个 URL。

URL 是互联网的基础。互联网之所以“互联”,就是因为网页可以通过“链接”(link),包含其他 URL。用户只要点击,就可以从一个 URL 跳转到另一个 URL,前往不同的网站。

URL字符

URL的组成部分

  • 26个英语字母(包括大写和小写)
  • 1-10
  • 连词号(-)
  • 句点(.)
  • 下划线(__)

URL的字符编码(转义方法)

  • ASCII
  • unicode - utf8
  • urlcode

ASCII码

URL字符转义的方法 : 百分号(%)+字符的十六进制

字符的十六进制

img

举例来说

www.baidu.com
可以转义为www.%62%61%69%64%75.com一样可以被浏览器识别

Unicode UTF

它使用4字节的数字来表达每个字母、符号,或者表意文字(ideograph)。每个数字代表唯一的至少在某种语言中使用的符号。

Unicode 当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母AinU+0041表示英语的大写字母AU+4E25表示汉字。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表

UTF-8

TF-8 就是使用变长字节表示,顾名思义,就是使用的字节数可变,这个变化是根据 Unicode 编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多。使用的字节个数从 1 到 4 个不等。
UTF-8 的编码规则是:

  • 对于单字节的符号,字节的第一位设为 0,后面的7位为这个符号的 Unicode 码,因此对于英文字母,UTF-8 编码和 ASCII 码是相同的。

  • 对于n字节的符号 (n>1),第一个字节的前 n 位都设为 1,第 n+1 位设为 0,后面字节的前两位一律设为 10,剩下的没有提及的二进制位,全部为这个符号的 Unicode 码 。

unicode编码范围与utf-8二进制的关系

编号范围 二进制格式
0x00 - 0x7f(0-127) 0xxxxxxx
0x80 - 0x7ff(128 - 2047) 110xxxxx 10xxxxxx
0x800 - 0xffff(2048-65535) 1110xxxx 10xxxxxx 10xxxxxx
0x10000 - 0x10ffff(65536)以上 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

举例子来说

中在unicode是4e2d(100 1110 0010) , 在上表来说 , 4e2d处于第三行(0x800 - 0xffff),因此中的utf-8编码为(111001001011100010101101)转换为十六进制为e4b8ad

也就是说,URL 里面凡是有汉字的地方,都要写成%e4%b8%ad。因此,访问www.example.com/中国.html这个网址,需要写成www.example.com/%e4%b8%ad%e5%9b%bd.html

URLcode码

urlcode 的简介
urlcode 是一种编码方式,就是把http请求串的url 进行urlcode的编码,让httpserver 可以识别,不至于http的client、server 之前出现乱码或者误解。

把为什么要用urlcode进行编码呢
因为在把字符串用url方式传送给httpserver时,字符串中不能出现中文和特殊字符(空格、换行符);
所以要对url 进行urlcode
每一个中文字符都有一个urlcode 编码
每一个特殊字符都有一个urlcode编码
英文的urlcode 是本身,不会变化

urldecode 的原理
当httpserver 收到client 发送过来的url后,首先进行urldecode进行urlcode 的解析,获取到最原始的query后再进行代码逻辑实现

urldecode 的原理
当httpserver 收到client 发送过来的url后,首先进行urldecode进行urlcode 的解析,获取到最原始的query后再进行代码逻辑实现

猜你喜欢

转载自blog.csdn.net/bo1029/article/details/131904669