编码(ASCII码、urlcode、html实体编码、unicode、utf-8,html状态码)

ASCII码

ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符 。其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符)
如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;
通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响 。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符等。
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号 。

URL编码

什么是URL编码
编码是指将数字和字符通过一定的转换后使其能够在计算机中进行展示的行为,因为计算机只能识别0,1的信号,所以输入计算机中的信息都要转换成0,1串的形式才能被计算机识别。在计算机中,编码的本质是用来保存或者传输信息,但是由于二进制编码太繁琐,所以人们在处理编码的时候通常用十进制或者十六进制表示,如我们所熟知的ASCII码就是用十进制表示字符。

URL编码是浏览器通用的一种编码形式,早期的URL编码是将scope限定在URL中,对URL中的一些字符进行编码。实际应用中,HTTP的body以及header等其他部分都有URL编码的使用。当URL路径或者查询参数中带有中文或者页数字符的时候,就需要对URL进行编码(十六进制编码)。URL的原则是使用安全字符去表示那些不安全字符。
安全字符是指没有特殊用途或者特殊意义的字符。
URL的编码方式

组成部分URL是有一些简单的组件构成,比如协议、域名、端口号、路径、查询以及字符串等,如
http://www.ccc.net/index?param=10
    **协议(scheme)**是浏览器请求服务器资源的方法,上述http://表示使用的是http协议。在浏览器支持的多种协议中,默认http协议,也就是说如果在浏览器地址栏输入网址时没有输入协议,而是直接输入www.ccc.net,浏览器的访问结果就是http://www.ccc.net。

    在当今应用中http大多数时候被认为是不安全的,所以越来越多的网站开始使 用http的加密版----https协议

    **主机(host)**是资源所在网站名或服务器的名字,又称为域名。

    上述www.ccc.net就是主机,有些主机没有域名只有ip地址,在这里还涉及到DNS域名解析器的工作原理,上述内容已经写了较为详细的过程了。

    端口:同一个域名下可能包含多个网站,他们之间通过端口(port)区分。可以理解为,访问者告诉服务器想要访问哪一个端口。HTTP协议的默认端口是80,如果省略了这个参数,服务器就会返回80端口的网站。

    **路径(path)**是资源在网站的位置。上述/index表示的就是路径。早期的路径指的是真实的物理地址,现在服务器可以模拟这些地址,所以现在的路径指的是虚拟地址。路径可以只包含目录,不包含文件名。

    **查询参数(parameter)**是提供给服务器的额外信息。查询参数可以有一组或者多组。没对参数都是键值对(key-value pair)的形式,同时具有键名(key)和键值(value),它们之间使用=链接。

    锚点(anchor)是网页内部的定位点,使用#加上锚点名称,放在网址的最后,比如#anchor。浏览器加载页面以后,会自动滚动到锚点所在的位置。

保留字符:URL中规定了一些具有特殊意义的字符,常被用来分割两个不同的URL组件,这些字符被称为保留字符。
    **:*用于分割协议和主机组件;
    **/**用于分割主机和路径;
    **?**用于分割路径和查询参数等;
    **=**用于表示查询参数中的键值对;
    **&**用于分隔查询多个键值对
    其余保留字符**. … # @ $ + ; %**

字符转义:URL的字符转义方法是在这些字符的十六进制ASCII码钱加(%)
    !:21%
    #:23%
    $:24%
    &:26%
    ':27%
    (:%28
    ):%29
    *:%2A
    +:%2B
    ,:%2C
    /:%2F
    ::%3A
    ;:%3B
    =:%3D
    ?:%3F
    @:%40
    [:%5B
    ]:%5D

URL分为绝对URL和相对URL两种

绝对URL:只靠URL本身就能确定组员的位置。这意味着,URL必须带有资源的完整信息,包含协议、主机、路径等部分。
相对URL:URL不包含资源位置的全部信息,必须结合当前网页的位置,才能定位资源。(可以参照文件目录的相对路径)

URL还有两种特殊的简写方式:

.:表示当前目录,比如./a.html,表示当前目录下的a.html文件
..:表示上级目录,比如../a.html(上级目录下的a.html文件)
引申用法:../../表示上两级目录

Unicode

Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS,也叫统一码、万国码、单一码。
Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字严。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表。

HTML编码

HTML实体编码,也即HTML中的转义字符。
·在 HTML 中,某些字符是预留的,例如在 HTML 中不能使用小于号<和大于号>,这是因为浏览器会误认为它们是标签。
·如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。
·HTML 中的常用字符实体是不间断空格。
实体的写法是&name;,其中的name是字符的名子。下面是其中一些特殊字符,及其对应的实体。

<:&lt;

>:&gt;

":&quot;

':&apos;

&:&amp;

©:&copy;

#:&num;

§:&sect;

¥:&yen;

$:&dollar;

£:&pound;

¢:&cent;

%:&percnt;

*:$ast;

@:&commat;

^:&Hat;

±:&plusmn;

空格:&nbsp;

utf-8编码

这里的关系是,UTF-8 是 Unicode 的实现方式之一。

UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

UTF-8 的编码规则很简单,只有二两条:

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

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

下表总结了编码规则,字母x表示可用编码的位。

Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
----------------------±--------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0-127
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
128-2047
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
2048-65535
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

网页状态码

HTTP 状态码常见的类型有四种:

2 开头(请求成功): 表示成功处理了请求。
3 开头(请求被重定向): 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
4 开头(请求错误): 表示请求可能出错,妨碍了服务器的处理。
5 开头(服务器错误): 表示服务器在尝试处理请求时发生了内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

2 开头(请求成功)

200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。

3 开头(请求被重定向)

300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

**

4 开头(请求错误)

**

400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
405 (方法禁用) 禁用请求中指定的方法。
406 (不接受) 无法使用请求的内容特性响应请求的网页。
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408 (请求超时) 服务器等候请求时发生超时。
409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。

5 开头(服务器错误)

500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值