理论篇6:http状态码和计算机常见编码

目录

 

http状态码

一、1xx(临时响应)

二、2xx(成功)

三、3xx (重定向)

四、4xx (请求错误)

五、5xx (服务器错误)

六、600

计算机常见编码

1、ASCII码

2、Unicode

3、UTF-8

4、URL编码

         5、Base64编码


 

http状态码

一、1xx(临时响应)

1xx     (临时响应)表示临时响应并需要请求者继续执行操作的状态代码。
100    Continue(继续)请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101

   Switching Protocols

    (切换协议)

请求者已要求服务器切换协议,服务器已确认并准备切换。
102    Processing(处理)由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。

二、2xx(成功)

2xx (成功)表示成功处理了请求的状态代码。
200OK(成功)服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

201

Created(已创建)请求成功并且服务器创建了新的资源。

202 

Accepted(已接受)

服务器已接受请求,但尚未处理。

203

Non-Authoritative Information(非授权信息)服务器已成功处理了请求,但返回的信息可能来自另一来源。

204

No Content(无内容)服务器成功处理了请求,但没有返回任何内容。

205

Reset Content(重置内容)服务器成功处理了请求,但没有返回任何内容。

206 

Partial Content(部分内容)服务器成功处理了部分 GET 请求。
207 Multi-Status(多状态)由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。

三、3xx (重定向)

3xx

(重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
300

          Multiple Choices

           (多种选择)

针对请求,服务器可执行多种操作。 服务器可根据请求者 (useragent)选择一项操作,或提供操作列表供请求者选择。
301

Moved Permanently

(永久移动)

请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或HEAD请求的响应)时,会自动将请求者转到新位置。
302

        Move Temporarily

           (临时移动)

服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303

See Other(查看其他位置)

请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304Not Modified(未修改)自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。     
305Use Proxy(使用代理)请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
306

            Switch Proxy

          (交换机代理)

在最新版的规范中,306状态码已经不再被使用。
307

Temporary Redirect

(临时重定向)

服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

四、4xx (请求错误)

4xx

(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
400Bad Request(错误请求)服务器不理解请求的语法。
401Unauthorized(未授权)请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
402Payment Required该状态码是为了将来可能的需求而预留的。
403Forbidden(禁止)服务器拒绝请求。
404Not Found(未找到)服务器找不到请求的网页。
405Method Not Allowed(方法禁用)禁用请求中指定的方法。
406Not Acceptable(不接受)无法使用请求的内容特性响应请求的网页。
407

Proxy Authentication Required

(需要代理授权)

此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408      Request Timeout(请求超时)服务器等候请求时发生超时。
409Conflict(冲突)服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410Gone(已删除)如果请求的资源已永久删除,服务器就会返回此响应。
411Length Required(需要有效长度)服务器不接受不含有效内容长度标头字段的请求。
412

Precondition Failed

(未满足前提条件)

服务器未满足请求者在请求中设置的其中一个前提条件。
413

Request Entity Too Large

(请求实体过大)

服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414

Request-URI Too Long

(请求的 URI 过长)

请求的 URL(常为网址)过长,服务器无法处理。较少见,通常的情况包括:本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长。
415

Unsupported Media Type

(不支持的媒体类型)

请求的格式不受请求页面的支持。
416

Requested Range Not Satisfiable

(请求范围不符合要求)

如果页面无法提供请求的范围,则服务器会返回此状态代码。
417

Expectation Failed

(未满足期望值)

服务器未满足”期望”请求标头字段的要求。
418I'm a teapot(我是一个茶壶”)

当客户端给一个茶壶发送泡咖啡的请求时,那就就返回一个错误的状态码表示:I'm a teapot。这个HTTP状态码在某些网站中用作彩蛋,另外也用于一些爬虫警告。

421

Misdirected Request

(误导性请求)

请求被指向到无法生成响应的服务器(比如由于连接重复使用)。
422

Unprocessable Entity

(无法处理的实体)

请求格式正确,但是由于含有语义错误,无法响应(RFC 4918 WebDAV)。
423Locked(被锁住)当前资源被锁定(RFC 4918 WebDAV)。
424

Failed Dependency

(依赖性错误) 

由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH(RFC 4918 WebDAV),
425Too Early 代表服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击(RFC 8470)。
426Upgrade Required(需要升级)http版本过低。服务器拒绝使用当前协议执行请求,但可能在客户端升级到其他协议后可以执行。
449Retry With(重试操作)由微软扩展,代表请求应当在执行完适当的操作后进行重试。
451

Unavailable For Legal Reasons

(因法律原因无法使用)

该请求因法律原因不可用(RFC 7725)。

五、5xx (服务器错误)

5xx

(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
500 

Internal Server Error

(服务器内部错误)

服务器遇到错误,无法完成请求。
501Not Implemented(尚未实施)服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502  Bad Gateway(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。
503

Service Unavailable

(服务不可用)

服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504Gateway Timeout(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505

HTTP Version Not Supported

(HTTP 版本不受支持)

服务器不支持请求中所用的 HTTP 协议版本。
506Variant Also Negotiates由《透明内容协商协议》扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点(RFC 2295)。
507Insufficient Storage(存储不足)服务器无法存储完成请求所必须的内容。这个状况被认为是临时的WebDAV (RFC 4918)。
509

Bandwidth Limit Exceeded

(超过带宽限制)

服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
510Not Extended(未扩展)获取资源所需要的策略并没有被满足(RFC 2774)。

RFC是英文“RequestForComments”的缩写,意思是指一系列以编号排定的文件。

六、600

600Unparseable Response Headers(无法解析的响应标头)源站没有返回响应头部,只返回实体内容。

计算机常见编码

1、ASCII码

用一个字节大小表示常用的字符,最开始ASCII码只表示128个字符,只需要7位表示,每个ASCII码存储在一个Byte中,从0到127的数字代表不同的常用符号。

ASCII码分为两套:128个字符的标准ASCII码和额外的128个字符的扩展ASCII码。

2、Unicode

统一编码,对于不同国家字符都能解析。只是表明了每个字符对应的数字码,该数字码全球统一,属于字符编码的标准,即字符集。unicode并未告诉编码的规则,所以根据unicode字符集有以下几种常用的编码规则:UTF-8、UTF-16等。

3、UTF-8

作为Unicode一种实现方式,使用1-4个字节进行编码。UTF-8与ASCII码表示的二进制数完全一致。( 汉字使用1-4字节不等方式进行表示)

4、URL编码

URL编码通常被称为百分号编码,就是因为他的编码方式是使用%加上两位16进制字符。对于ASCII字符进行编码就是取ASCII码中对应的字节,前面加上%。

URL 编码的规则:简单来说,如果需要对一个字符进行 URL 编码,首先需要判断该字符是否是 ASCII 字符:

  • 如果一个字符是 ASCII 字符,那么对该字符进行 URL 编码,首先需要把该字符的 ASCII 的值表示为两个 16 进制的数字,然后在其前面放置转义字符 %,就得到了该字符的 URL 编码结果。
  • 如果一个字符是非 ASCII 字符,那么对该字符进行 URL 编码,首先需要使用指定的字符编码方式(建议使用 UTF-8 字符编码),将 “非 ASCII 字符” 编码为字节序列(字节序列即二进制数据);然后对其字节序列进行 URL 编码。
  • URL 编码 “二进制数据”,首先需要把 “二进制数据” 表示为 8 位组的序列,然后在每个 8 位组的前面放置转义字符 %,就得到了 “二进制数据” 的 URL 编码结果。

常见字符的url编码列表:

       空格的URL编码是%20

 5、Base64编码

如果编码中有符号==,则说明大概率是Base64编码

就是使用64个可打印字符来表示二进制数据的方法。这64个字符中包括大小写字母、数字、+和/,还有用来补缺的特殊字符=。

是最常见的用于传输8Bit字节的编码方式之一,从二进制到字符的过程,可用于在http环境下传递较长的信息。采用Base64编码具有不可读性,要解码后才能阅读。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值