目录
http状态码
一、1xx(临时响应)
1xx | (临时响应) | 表示临时响应并需要请求者继续执行操作的状态代码。 |
100 | Continue(继续) | 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 |
101 | Switching Protocols (切换协议) | 请求者已要求服务器切换协议,服务器已确认并准备切换。 |
102 | Processing(处理) | 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 |
二、2xx(成功)
2xx | (成功) | 表示成功处理了请求的状态代码。 |
200 | OK(成功) | 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 |
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 请求来检索响应时,服务器返回此代码。 |
304 | Not Modified(未修改) | 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 |
305 | Use Proxy(使用代理) | 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 |
306 | Switch Proxy (交换机代理) | 在最新版的规范中,306状态码已经不再被使用。 |
307 | Temporary Redirect (临时重定向) | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 |
四、4xx (请求错误)
4xx | (请求错误) | 这些状态代码表示请求可能出错,妨碍了服务器的处理。 |
400 | Bad Request(错误请求) | 服务器不理解请求的语法。 |
401 | Unauthorized(未授权) | 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 |
402 | Payment Required | 该状态码是为了将来可能的需求而预留的。 |
403 | Forbidden(禁止) | 服务器拒绝请求。 |
404 | Not Found(未找到) | 服务器找不到请求的网页。 |
405 | Method Not Allowed(方法禁用) | 禁用请求中指定的方法。 |
406 | Not Acceptable(不接受) | 无法使用请求的内容特性响应请求的网页。 |
407 | Proxy Authentication Required (需要代理授权) | 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 |
408 | Request Timeout(请求超时) | 服务器等候请求时发生超时。 |
409 | Conflict(冲突) | 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 |
410 | Gone(已删除) | 如果请求的资源已永久删除,服务器就会返回此响应。 |
411 | Length 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 (未满足期望值) | 服务器未满足”期望”请求标头字段的要求。 |
418 | I'm a teapot(我是一个茶壶”) | 当客户端给一个茶壶发送泡咖啡的请求时,那就就返回一个错误的状态码表示:I'm a teapot。这个HTTP状态码在某些网站中用作彩蛋,另外也用于一些爬虫警告。 |
421 | Misdirected Request (误导性请求) | 请求被指向到无法生成响应的服务器(比如由于连接重复使用)。 |
422 | Unprocessable Entity (无法处理的实体) | 请求格式正确,但是由于含有语义错误,无法响应(RFC 4918 WebDAV)。 |
423 | Locked(被锁住) | 当前资源被锁定(RFC 4918 WebDAV)。 |
424 | Failed Dependency (依赖性错误) | 由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH(RFC 4918 WebDAV), |
425 | Too Early | 代表服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击(RFC 8470)。 |
426 | Upgrade Required(需要升级) | http版本过低。服务器拒绝使用当前协议执行请求,但可能在客户端升级到其他协议后可以执行。 |
449 | Retry With(重试操作) | 由微软扩展,代表请求应当在执行完适当的操作后进行重试。 |
451 | Unavailable For Legal Reasons (因法律原因无法使用) | 该请求因法律原因不可用(RFC 7725)。 |
五、5xx (服务器错误)
5xx | (服务器错误) | 这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。 |
500 | Internal Server Error (服务器内部错误) | 服务器遇到错误,无法完成请求。 |
501 | Not Implemented(尚未实施) | 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 |
502 | Bad Gateway(错误网关) | 服务器作为网关或代理,从上游服务器收到无效响应。 |
503 | Service Unavailable (服务不可用) | 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 |
504 | Gateway Timeout(网关超时) | 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 |
505 | HTTP Version Not Supported (HTTP 版本不受支持) | 服务器不支持请求中所用的 HTTP 协议版本。 |
506 | Variant Also Negotiates | 由《透明内容协商协议》扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点(RFC 2295)。 |
507 | Insufficient Storage(存储不足) | 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的WebDAV (RFC 4918)。 |
509 | Bandwidth Limit Exceeded (超过带宽限制) | 服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。 |
510 | Not Extended(未扩展) | 获取资源所需要的策略并没有被满足(RFC 2774)。 |
RFC是英文“RequestForComments”的缩写,意思是指一系列以编号排定的文件。
六、600
600 | Unparseable 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编码具有不可读性,要解码后才能阅读。