HTTP 协议部分常识简介
1、状态码
具体的状态码可以百度查找,但是对于状态码的大致分类有一个清楚的了解
1XX ----信息状态码------接受的请求正在处理
2XX ------成功状态码 ------请求正常处理完毕
3XX----重定向状态码-----需要进行附加操作完成请求
4XX---客户端错误状态码-------服务器无法请求
5XX----服务器状态吗错误-----服务器处理请求错误
2、常见的状态码常简介
100 continue :表示到目前为止都很正常,客户端可以正常发送请求或者忽略这个响应
2XX : 200 ok
204 No Content: 请求已经成功处理,但是返回的响应报文不包含实体的主体部分,一般在需要客户端王服务器发送信息,而不需要返回数据的时候使用。
206 Partial Content : 表示客户端进行了范围请求,响应报文包含Content-Range 指定的范围实体内容
3XX 重定向:
301 Moved Permanently :永久性的重定向
302 Found : 临时的重定向
303 See Other : 和302有着相同功能,但是303 明确要求客户端采用GET的方法获取资源
注明: 在HTTP协议中规定,301 302 状态重定向时不允许将POST方法改成GEt 方法,但是大多数浏览器都会在301 302 303 状态下重定向把POST方法改成GET方法
304 NOt Modified :如果请求报文首部包含一些条件:比方说 if_match if-ModifiedSince if_NoneSince if-Range if-Unmodified, 如果不满足这些条件,则服务器返回304状态码
307: Temporary Redirect :临时重定向,与 302类似,但是不同的是 307要求浏览器不会把重定向的请求POST方法改成GET方法
4XX; 客户端错误:
400 Bad Request : 请求报文中含有语法的错误
401 Unauthorized: 该状态码表示发送的请求需要有认证信息(BASIC认证,DIGEST认证),如果之前已经进行过一次请求,则表示user 认证失败
403 forbidden :请求被拒绝,服务器端没有必要给出拒绝的理由
404 not find
5XX:服务器类型错误:
500 internalServer Error :服务器正在执行请求时发生错误
503 Server unavilable : 服务器暂时处超负载,或者服务器在停机在维修。无法处理请求
那么详细的在 RFC 2616 规范中有详细的记载:
状态码 | 类别 | 原因短语 | 含义 | |
---|---|---|---|---|
100 | Informational(信息性状态码) | Continue(继续) | 收到了请求的起始部分,客户端应该继续请求。 | ❤ |
101 | Informational(信息性状态码) | Switching Protocols(切换协议) | 服务器正根据客户端的指示将协议切换成 Update 首部列出的协议。 | ❤ |
200 | Success(成功状态码) | OK | 服务器已成功处理请求 | ❤ |
201 | Success(成功状态码) | Created(已创建) | 对那些要服务器创建对象的请求来说,资源已创建完毕 | |
202 | Success(成功状态码) | Accepted(已接受) | 请求已接受,但服务器尚未处理 | |
203 | Success(成功状态码) | Non-Authoritative Information(非权威信息) | 服务器已将事务成功处理,只是实体首部包含的信息不是来自原始服务器,而是来自资源的副本 | |
204 | Success(成功状态码) | No Content(没有内容) | 响应报文包含一些首部和一个状态行,但不包含实体的主体内容,一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用 | ❤ |
205 | Success(成功状态码) | Reset Content(重置内容) | 另一个主要用于浏览器的代码。意思是浏览器应该重置当前页面上所有的 HTML 表单 | |
206 | Success(成功状态码) | Partial Content(部分内容) | 成功执行了一个部分或者 Range (范围)请求,客户端可以通过一些特殊的首部来获取部分或某个范围内的文档 响应报文中包含由 Content-Range、Date、以及 ETag 或者 Content-Location 指定范围的实体内容 |
❤ |
300 | Redirection(重定向状态码) | Multiple Choices(多项选择) | 客户端请求了实际指向多个资源的 URL。这个代码是和一个选项列表一起返回的,然后用户就可以选择他希望使用的选项了。服务器可以在 Location 首部包含首选 URL | |
301 | Redirection(重定向状态码) | Moved Permanently(永久移除) | 永久性重定向,请求的 URL 已移走。响应中应该包含一个 Location URL,说明资源现在所处的位置 | ❤ |
302 | Redirection(重定向状态码) | Found(已找到) | 临时性重定向,与状态码 301 类似, 但这里的移除是临时的。客户端应该用 Location 首部给出的 URL 对资源进行临时定位 | ❤ |
303 | Redirection(重定向状态码) | See Other(参见其他) | 告诉客户端应该用另一个 URL 获取资源。这个新的 URL 位于响应报文的 Location 首部。303 状态码 和 302 状态码有相同的功能,但是 303 明确表示客户端应采用 GET 方法获取资源。 | ❤ |
当 301、302、303 响应状态码返回时,几乎所有的浏览器都会把 POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送。 301、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际使用时大家都会这么做 |
||||
304 | Redirection(重定向状态码) | Not Modified(未修改) | 该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但因发生请求未满足条件的情况后,直接返回 304 Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)304 状态码返回时,不包含任何响应的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向一点关系也没有 | ❤ |
(附带条件的请求是指采用 GET 方法的请求报文中包含 If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部) | ||||
305 | Redirection(重定向状态码) | Use Proxy(使用代理) | 必须通过代理访问 资源,代理的位置是在 Location 首部中给出的 | |
306 | (未使用) | 这个状态码当前并未使用 | ||
307 | Redirection(重定向状态码) | Temporary Redirect(临时重定向) | 和状态码 302 类似。但客户端应该用 Location 首部给出的 URL 对资源进行临时定位。 307 会遵守浏览器标准,不会从 POST 变成 GET |
❤ |
400 | Client Error(客户端错误状态码) | Bad request(坏请求) | 告诉客户端它发送了一条异常请求 | ❤ |
401 | Client Error(客户端错误状态码) | Unauthorized(未授权) | 与适当的首部一起返回,在客户端获得资源访问权之前,请它进行身份认证 | ❤ |
402 | Client Error(客户端错误状态码) | Payment Required(要求付款) | 当前此状态码并未使用,是为未来使用预留的 | |
403 | Client Error(客户端错误状态码) | Forbidden(禁止) | 服务器拒绝了请求 | ❤ |
404 | Client Error(客户端错误状态码) | Not Found(未找到) | 服务器无法找到 所请求的 URL | ❤ |
405 | Client Error(客户端错误状态码) | Method Not Allowed(不允许使用的方法) | 请求中有一个所请求的 URI 不支持的方法。响应中应该包含一个 Allow 首部,以告知客户端所请求的资源支持使用哪些方法 | |
406 | Client Error(客户端错误状态码) | Not Acceptable(无法接受) | 客户端可以指定一些参数来说明希望接受哪些类型的实体。服务器没有资源与客户端可接受的 URL 相匹配时可使用此代码 | |
407 | Client Error(客户端错误状态码) | Proxy Authentication Required(要求进行代理认证) | 和状态码 401 类似,但用于需要进行资源认证的代理服务器 | |
408 | Client Error(客户端错误状态码) | Request Timeout(请求超时) | 如果客户端完成其请求时花费的时间太长,服务器可以回送这个状态码并关闭连接 | |
409 | Client Error(客户端错误状态码) | Conflict( 冲突) | 发出的请求在资源上造成了一些冲突 | |
410 | Client Error(客户端错误状态码) | Gone(消失了) | 除了服务器曾持有这些资源之外,与状态码 404 类似 | |
411 | Client Error(客户端错误状态码) | Length Required(要求长度指示) | 服务器要求在请求报文中包含 Content- Length 首部时会使用这个代码。发起的请求中若没有 Content-Length 首部,服务器 是不会接受此资源请求的 | |
412 | Client Error(客户端错误状态码) | Precondition Failed(先决条件失败) | 如果客户端发起了一个条件请求, 如果服务器无法满足其中的某个条件,就返回这个响应码 | |
413 | Client Error(客户端错误状态码) | Request Entity Too Large(请求实体太大) | 客户端发送的实体主体部分比 服务器能够或者希望处理的要大 | |
414 | Client Error(客户端错误状态码) | Request URI Too Long(请求 URI 太长) | 客户端发送的请求所携带的请求 URL 超过了服务器能够或者希望处理的长度 | |
415 | Client Error(客户端错误状态码) | Unsupported Media Type(不支持的媒体类型) | 服务器无法理解或不支持客户端所发送的实体的内容类型 | |
416 | Client Error(客户端错误状态码) | Requested Range Not Satisfiable(所请求的范围未得到满足) | 请求报文请求的是某范围内的指定资源,但那个范围无效,或者未得到满足 | |
417 | Client Error(客户端错误状态码) | Expectation Failed(无法满足期望) | 请求的 Expect 首部包含了一个预期内容,但服务器无法满足 | |
500 | Server Error(服务器错误状态码) | Internal Server Error(内部服务器错误) | 服务器遇到了一个错误,使其无法为请求提供服务 | ❤ |
501 | Server Error(服务器错误状态码) | Not Implemented(未实现) | 服务器无法满足客户端请求的某个功能 | |
502 | Server Error(服务器错误状态码) | Bad Gateway(网关故障) | 作为代理或网关使用的服务器遇到了来自响应链中上游的无效响应 | |
503 | Server Error(服务器错误状态码) | Service Unavailable(未提供此服务) | 服务器目前无法为请求提供服务,但过一段时间就可以恢复服务 | ❤ |
504 | Server Error(服务器错误状态码) | Gateway Timeout(网关超时) | 与状态码 408 类似,但是响应来自网关或代理,此网关或代理在等待另一台服务器的响应时出现了超时 | |
505 | Server Error(服务器错误状态码) | HTTP Version Not Supported(不支持的 HTTP 版本) | 服务器收到的请求是以它不支持或不愿支持的协议版本表示的 |
在 RFC2616 中定义了 40 种 HTTP 状态码,webDAV ( Web-based Distributed Authoring and Versioning,基于万维网的分布式创作和版本控制)在 RFC4918 和 RFC5842 中,定义了一些特殊的状态码,在 RFC2518、RFC2817、RFC2295、RFC2774、RFC6585 中还额外定义了一些附加的 HTTP 状态码。总共有 60+ 种。具体链接可以见 HTTP状态码 (wikipedia)
webDAV 新增状态码
状态码 | 类别 | 原因短语 | 含义 | |
---|---|---|---|---|
102 | Informational(信息性状态码) | Processing(处理中) | 可正常处理请求,但目前是处理中状态。WebDAV请求可能包含许多涉及文件操作的子请求,需要很长时间才能完成请求。该代码表示服务器已经收到并正在处理请求,但无响应可用。这样可以防止客户端超时,并假设请求丢失。 | |
207 | Success(成功状态码) | Multi-Status(多种状态) | 存在多种状态。代表之后的消息体将是一个 XML 消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。 | |
208 | Success(成功状态码) | Already Reported(已经响应) | DAV绑定的成员已经在(多状态)响应之前的部分被列举,且未被再次包含。 | |
422 | Client Error(客户端错误状态码) | Unprocessable Entity(不可处理的实体) | 格式正确,内容有误,无法处理响应 | |
423 | Client Error(客户端错误状态码) | Locked(被锁定) | 资源已被加锁 | |
424 | Client Error(客户端错误状态码) | Failed Dependency(失败的依赖) | 处理与某请求关联的请求失败,因为不再维持依赖关系。 | |
507 | Server Error(服务器错误状态码) | Insufficient Storage(存储空间不足) | 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。 | |
508 | Server Error(服务器错误状态码) | Loop Detected(检测到环) | 服务器在处理请求时陷入死循环。 |
HTTP 协议部分常识简介的更多相关文章
- 网络基础 HTTP协议之缓存简介
HTTP协议之缓存简介 by:授客 QQ:1033553122 用浏览器查看缓存 IE为例,Tools->Internet options -> View files,如图 点击图示的Vi ...
- SSH工作过程简介和SSH协议算法集简介
SSH简介 SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议. SSH协议采用了典型的客户端/ ...
- 【转】SSL协议、SET协议、HTTPS简介
一.SSL协议简介 SSL是Secure Socket Layer的缩写,中文名为安全套接层协议层.使用该协议后,您提交的所有数据会首先加密后,再提交到网易邮箱,从而可以有效防止黑客盗取您的用户名.密 ...
- http协议与url简介(转)
一 知识简介 HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议. URL ...
- 基础篇-http协议《http 简介、url详解、request》
目录 一.http 简介 二.url 详解 三.request 1.get 和 post 2.请求方法 3.request 组成 4.请求头 5.get 请求参数 6.post 请求参数 7.post ...
- Java客户端协议处理框架简介
无论FTP客户程序,还是HTTP客户程序,或是其他基于特定应用层协议的客户程序,在与远程服务器通信时,都需要建立与远程服务器的连接,然后发送和接收与协议相符的数据.客户程序还需要对服务器发送的数据进行 ...
- TCP/IP 协议族的简介
TCP/IP重要的特性就是分层.TCP/IP 按照层次分为四层:应用层.传输层.网络层.数据链路层.分层的好处就是当某些地方需要改变的时候,只需要将改变的层替换掉即可,而不用去把整体做替换.各层之间的 ...
- Http协议基本知识简介
HTTP协议是指超文本传输协议,位于应用层,HTTP规定数据格式,然后用tcp进行传输. 请求响应模式:简单理解为客户端对服务器发起请求,服务器响应客户端. 主要特点 无连接:无连接的含义是限制每次连 ...
- MTP(Media Transfer Protocol(媒体传输协议))简介
---恢复内容开始--- 1,简单说明 MTP,微软公司规定的新的传输规则(字面本来应该是协议的,但是自己感觉更像是规则,制定了基本上的所有路线,剩下的是你想怎么选择罢了,使用者完全没有可能在它的框架 ...
随机推荐
- LabWindows/CVI入门之第四章:库文件(转)
按语: 在参考CVI参考书使用CVI生成动态库后,在另一工程中调用DLL ,编译通不过,后参考此文,豁然开朗. http://blog.sina.com.cn/s/blog_6373e9e60101b ...
- c# 在静态方法里,怎么能得到调用者的类名?
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(); string name = st.GetFrame(1) ...
- Python - Django - 页面上展示固定的页码数
如果页数太多的话,全部显示在页面上就会显得很冗杂 可以在页面中显示规定的页码数 例如: book_list.html: <!DOCTYPE html> <html lang=&quo ...
- AI佳作解读系列(六) - 生成对抗网络(GAN)综述精华
注:本文来自机器之心的PaperWeekly系列:万字综述之生成对抗网络(GAN),如有侵权,请联系删除,谢谢! 前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian G ...
- Java分布式:分布式事务
Java分布式:分布式事务 分布式事务 分布式事务就是指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.简单的说,就是一次大的操作由不同的小操作组成,这 ...
- k8s调度器之亲和性和反亲和性/节点选择器
容器在节点(物理机)上是如何部署的 是由调度器scheduler进行调度的 调度策略 随机 通过节点选择器选择某些节点 通过节点亲和性和pod的亲和性及反亲和性实现更细粒度的控制 参考 https:/ ...
- centos docker 修改默认存储路径
1.修改配置 将--graph /mnt/docker添加在docker.service文件中的ExecStart字段后面,其中/mnt/docker为你需要修改的存储目录 $ vim /usr/li ...
- 2019年广东省赛gdccpc回顾
本次比赛状态一般般,热身赛单人挂机爆零让自己慌了一整天. 开题直接抓E题入手,准备交题后关机(辣鸡云桌面),开机后又告诉我要关机,心急连交两发结果都WA了,最后靠队员提醒救了回来.心态还算稳住了.后面 ...
- 用Nacos做微服务架构里的服务注册与发现中心
转自:https://www.jianshu.com/p/61608ff86344 Nacos 另一个非常重要的特性就是服务注册与发现,说到服务的注册与发现相信大家应该都不陌生,在微服务盛行的今天,服 ...
- 【转帖】为什么redis 是单线程的?
为什么redis 是单线程的? https://cloud.tencent.com/developer/article/1120615 云服务器企业新用户优先购,享双11同等价格 立即抢购 以前一直有 ...