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,微软公司规定的新的传输规则(字面本来应该是协议的,但是自己感觉更像是规则,制定了基本上的所有路线,剩下的是你想怎么选择罢了,使用者完全没有可能在它的框架 ...
随机推荐
- python format函数/print 函数详细讲解(4)
在python开发过程中,print函数和format函数使用场景特别多,下面分别详细讲解两个函数的用法. 一.print函数 print翻译为中文指打印,在python中能直接输出到控制台,我们可以 ...
- GATK4注意事项
近期在测试多样品的WES的过程中发现用HC得到gvcf之后,合并多个样品的gvcf文件的过程中,使用CombineGVCFs的过程中很慢,发现官网推荐使用GenomicsDBImport 用法如下: ...
- 【剑指offer】面试题 42. 连续子数组的最大和
面试题 42. 连续子数组的最大和 NowCoder 题目描述 输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值. 示例: 输入: [-2,1 ...
- (二)linux 学习 -- 探究操作系统
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap04.html 文章目录 ls 命令进阶 `l ...
- input的小技巧 清除自动记录
input 消除自动记忆功能 在html里就可以直接清除了<input type="text" autocomplete="off"> input ...
- Python-02-基础知识
一.第一个Python程序 [第一步]新建一个hello.txt [第二步]将后缀名txt改为py [第三步]使用记事本编辑该文件 [第四步]在cmd中运行该文件 print("Hello ...
- Linux命令格式及7个常见终端命令
Linux命令格式 Linux常见的7个终端命令
- Golang常用快捷键以及常见快捷键冲突
配置快捷键: 跳转到函数定义 回退 查找函数使用 File/Settings/Keymap 工具: gofmt/golint File/Settings/Tools/File Watchers gol ...
- golang开发:环境篇(四)包管理器 glide的使用
glide 是golang项目开发中是特别重要的软件,没有它,golang的项目可能都无法发布. 为什么要使用glide 平时我们开发Go项目的时候,使用第三方的包的时候都直接使用go get 去获取 ...
- 谷歌chrome浏览器提示“喔唷 崩溃啦”的解决方案
原因分析:有可能是注册列表被一些卫士类优化工具或杀毒软件优化了. 解决方案:1. 卸载谷歌浏览器. ①开始→控制面板→添加或删除程序→找到谷歌浏览器卸载(卸载时勾选删除数据) ② 进入注册列表删除谷歌 ...