如果PUT请求没有错误,但没有更新任何内容,状态代码应该是"204 No Content"。
因为如果服务端要管用户的会话信息的话,一旦服务端出错出现故障用户会话信息就会完全丢失,想要恢复起来机会是不可能的,所以说它的可靠性就会很差,但如果服务端不管你用户会话信息的话,那么从故障中恢复起来就回非常的容易...本质上也是一种查询,如果列表信息非常长的话应该加上分页信息 字段过滤。只返回你指定的字段 状态码。选择正确的状态作为返回状态 错误处理。...如果你的请求是错的,那么应用尽量把错误信息给返回,并按照一个规范通用的格式 安全 HTTPS 鉴权 限流 开发者友好 文档 超媒体 RESTful API 示例 下面是我是真实API截图,用Swagger...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。...用HTTP状态码传达执行结果和失败原因。 为集合提供过滤、排序、分页等功能。 用查询字符串或HTTP首部进行内容协商,指定返回结果的数据格式。 及时更新文档,每个接口都有对应的说明。
由于无法进行内容的协商,在双发的握手和协议中,并有规定双发的内容是什么,也就是图片是无法显示和处理的。 ...HTTP 是无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。...8 TRACE 回显服务器收到的请求,主要用于测试或诊断。 9 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。...,但请求者应当使用代理进行授权 408 服务器等待客户端发送的请求时间过长,超时 409 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 410 客户端请求的资源已经不存在...410 不同于 404,如果资源以前有现在被永久删除了可使用 410 代码,网站设计人员可通过 301 代码指定资源的新位置 411 服务器无法处理客户端发送的不带 Content-Length 的请求信息
如果按照HTTP方法的语义来暴露资源,那么接口将会拥有安全性和幂等性的特性,例如GET和HEAD请求都是安全的, 无论请求多少次,都不会改变服务器状态。...通用错误响应 503 (Service Unavailable)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改...,则不过更新资源(乐观锁) 200(OK)- 如果现有资源已被更改 201(created)- 如果新资源被创建 202(accepted)- 已接受处理请求但尚未完成(异步处理) 301(Moved...服务当前无法处理请求 PUT 不安全但幂等 用客户端管理的实例号创建一个资源 通过替换的方式更新资源 如果未被修改,则更新资源(乐观锁) 200 (OK)- 如果已存在资源被更改 201 (created...假如你不利用HTTP状态代码丰富的应用语义,那么你将错失提高重用性、增强互操作性和提升松耦合性的机会。
通用错误响应 503 (Service Unavailable)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改...,则不过更新资源(乐观锁) 200(OK)- 如果现有资源已被更改 201(created)- 如果新资源被创建 202(accepted)- 已接受处理请求但尚未完成(异步处理) 301(Moved...服务当前无法处理请求 PUT 不安全但幂等 用客户端管理的实例号创建一个资源 通过替换的方式更新资源 如果未被修改,则更新资源(乐观锁) 200 (OK)- 如果已存在资源被更改 201 (created...假如你不利用HTTP状态代码丰富的应用语义,那么你将错失提高重用性、增强互操作性和提升松耦合性的机会。...如果这些所谓的RESTful应用必须通过响应实体才能给出错误信息,那么SOAP就是这样的了,它就能够满足了。 2. 3 资源的表述 上 面提到,客户端通过HTTP方法可以获取资源,是吧?
PUT - 字意就是更新内容。所以当我们需要更新数据时,就需要定义为 PUT 方法。当然,也可以用来创建新数据。 DELETE - 删除,很好理解。...PATCH - 打补丁,对于已经存在的数据进行更新操作。这个跟 PUT 有一点点区别,通常 PATCH 是有范围的,更新需要更新的内容,而 PUT 更多时候是更新整个数据。...记着,任何的代码改动,对于不更新应用或其它内容的调用者来说都是有风险的。你不仅需要确保你的代码不会破坏任何东西或任何人,还需要知道某个应用版本的表现。这件事一点都不好玩。...重视出错后的返回信息 API 开发,应该既能处理正确的请求,也能处理错误的请求。错误的请求并不可怕,可怕的是你没有考虑到,或者考虑到了,但没有给到调用端足够的细节。...3xx - 重定向响应代码。请求被服务器重定向到另一个 URL,就会有这个返回。 4xx - 客户端错误响应代码。最常见的是 400,请求协议格式或内容错误。 5xx - 服务器错误响应。
做web开发的同学在开发的过程中应该经常会遇到一些错误的访问代码,由其是错误代码404,如果访问一下比较low的网站的时候,经常就会遇到浏览器端显示:“404无法访问”的提示,类似下面这种,相信大家都遇到过...那么这些web错误的访问代码具体到底是什么意思呢?我花时间整理了一下每个web网站访问错误代码的含义,希望对大家有用。 1xx(临时响应): 表示临时响应并需要请求者继续执行操作的状态码。...204(无内容)服务器成功处理了请求,但没有返回任何内容。 205(重置内容)服务器成功处理了请求,但没有返回任何内容。...406(不接受)无法使用请求的内容特性响应请求的网页。 407(需要代理授权)此状态码与 401(未授权)类似,但指定请求者应当授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。...服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表。 410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。
POST是非幂等的,这意味着多个请求将具有不同的效果。 PUT方法请求服务器更新资源或创建资源(如果不存在)。...6 使用HTTP状态码 当客户端通过API向服务器发出请求时,客户端应该知道反馈,无论是失败,成功还是请求错误。 HTTP状态代码是一系列标准化代码,针对http请求的可能会发生的各种情况。...201 Created每当创建新实例时,都应返回此状态代码。 例如,使用POST方法创建新实例时,应始返回201状态代码。 204 No Content表示请求已成功处理,但未返回任何内容。...4xx(客户端错误类别) 这些状态代码表示客户端已提出错误请求。 400 Bad Request表示未处理客户端的请求,因为服务器无法理解客户端要求的内容。...5xx(服务器错误类别) 500内部服务器错误表示请求有效,但服务器完全混淆,并要求服务器提供某些意外情况。 503 Service Unavailable表示服务器已关闭或无法接收和处理请求。
这些词听起来很好,也很神秘,但其实没那么复杂。用简单的英语来说,safe 意味着只需准备好。你可以在不需要担心更新、破坏或改变数值的情况下,向这个端点发送请求。...PATCH 方法 PATCH 请求用于再次更新资源,但与 PUT 不同的是,它只需要更新改变的数据,而 PUT 能够并且应当对全部的资源进行更新。这是不安全的,也是不可行的。...如果您不提供详细信息,并且确保您的 API 比其他任何人都要聪明,那么您应该感到不安。 从最上面开始,我发现了一个最常被开发人员使用的事情,就是 HTTP 状态代码。...如果你不了解,那么 HTTP 的状态代码可以在任何你能想到的情况下使用。你只要知道用哪个,然后再返回到客户端。HTTP 相应状态代码有 50 多种,每一种都有其特殊的意义,需要在特定的环境中加以应用。...如果我们应用预测可能发生的事情的策略,我们会做以下的事情: 检查请求中是否有 user_id 参数:如果没有,则回应 400 错误请求。
服务器地址和请求状态的组合,将计算散列键组合成结果集。 GET请求允许客户端发出非常特定的请求,但只在必要时。...正如我们上面所指出的,只要服务器支持,客户端就可以使用内容协商来主动询问所请求的内容。 关于GET请求的一个关键点是,它不应该修改服务器端上的任何内容。这基本上是一个安全的要求。...GET请求也是具有幂等性的。这意味着多次发出请求不会产生任何后果。这是基于网络的分布式基础设施中的一个关键属性。如果客户端在发出GET请求时被中断,那么由于动词的幂等性,它应该被授权再次发出请求。...产生不好的影响 PUT 客户端可以向已知URL发出PUT请求,作为将表示传递回服务器的一种方式,以便执行覆盖操作。这种区别允许PUT请求具有幂等性,而POST更新不是。...如果客户端正在发出PUT覆盖并被中断,客户端可以再次发出PUT,因为覆盖操作可以重新发出,不会产生任何后果;客户机正在尝试控制状态,因此可以简单地重新发出命令。
但服务器如何知道是什么样的应用程序请求资源?请求头!没错,就是请求头!请求头是用于附加数据补充请求的一种方式,它们被构造为简单的基于文本的键值数组。...另一方面,PUT请求期望服务器更新或替换现有的数据项。因此,如果有人更新自己的配置文件,则具有用户对象的PUT请求将是适合的。 ③ DELETE 最后,也是最简单的一个DELETE。...状态码通知客户请求的结果。换句话说,它告诉你你的请求是否成功。当然,取决于内容,有一百万中不同的结果。因此状态行分为两部分:状态码和文本描述。文本不遵守任何标准化,可以是描述成功或错误的任何字符串。...201创建 - 请求成功导致创建新的东西。 204无内容 - 请求成功,但服务器没有响应任何数据。这通常用于确认资源的成功删除。...401未经授权 - 此状态码对请求的内容没有任何说明,它告诉您无法处理请求,因为服务器无法验证请求(不知道请求后面的用户是谁)。通常,这意味着认证令牌丢失或不正确。
PATCH/PUT:用于更新数据。DELETE : 用于删除数据。图片路径请求必须包含指向应该对其执行操作的资源的路径。在RESTful风格中,应该遵守以下原则:1....常见的 HTTP 状态码1xxs:信息响应,服务器仍在处理请求。2xxs:成功,请求成功完成3xxs:重定向,收到的请求重定向到另一个地址。4xxs:客户端错误,例如,404 - 找不到页面。...一些常见的 HTTP 状态代码包括:200:成功的请求,通常是 GET201:创建后请求成功,通常是 POST204:请求成功,没有返回内容,通常是 PUT 或 PATCH301:永久重定向到另一个端点...400:错误请求(客户端应修改请求)401:未经授权,凭据无法识别403:禁止,凭据接受但没有权限404:未找到,资源不存在410:消失了,资源以前存在但现在不存在429:请求过多,用于速率限制,应包含重试标头...500:服务器错误,一般性,值得查看其他 500 级错误503:服务不可用,另一个重试标头有用总结REST是一种软件架构风格,用于 Web 架构的设计,任何遵循 REST 设计原则的 API都被称为 RESTful
了解到以上内容, 那REST 世界的"交通灯"规则是什么样的?...POST /users/12 HTTP/1.1 X-HTTP-Method-Override: PUT 上面代码中, X-HTTP-Method-Override指定本次请求的方法是 PUT,而不是 POST...这是一个很错误的观念,RESTful 的设计理念之一是简单直观,试想一下,前端开发人员打开开发者工具,所有请求都是200的状态码,但是页面数据就是没有显示出来,难道前端开发人员还要每个接口调用点开看一看...找不到要删除的内容 使用状态码 202 有时候会比 使用状态啊吗 201 是更好的选择,状态码 202 的意思是:服务端已接收到了请求,但是还没有创建任何资源,但结果一切正常。...) 4xx 状态码 4xx 状态码表示客户端的错误,主要有以下几种: 400BadRequest:服务器不理解客户端的请求,未做任何处理 401Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证
使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。 204 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。 ...由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾。 205 服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。...例如,在采用版本检查的环境下,某次 PUT 提交的对特定资源的修改请求所附带的版本信息与之前的某个(第三方)请求向冲突,那么此时服务器就应该返回一个409错误,告知用户请求无法完成。...416 如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。
• 204(无内容): 服务器成功处理了请求,但没有返回任何内容。 • 205(重置内容): 服务器成功处理了请求,但没有返回任何内容。...• 407(需要代理授权):此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 • 408(请求超时):服务器等候请求时发生超时。 • 409(冲突):服务器在完成请求时发生冲突。...• 416(请求范围不符合要求):如果页面无法提供请求的范围,则服务器会返回此状态代码。 • 417(未满足期望值):服务器未满足"期望"请求标头字段的要求。...PUT 请求需要指定要更新的资源的具体位置,而 POST 请求可以将数据提交到任何位置。 7. 常见的 HTTP 请求头和响应头?...• 长轮询:客户端向服务器发送请求,当服务器接收到请求后,不会直接进行响应,而是先将这个请求挂起,然后再判断服务端的数据是否有更新,如果有更新,则进行响应,如果没有,则到达一定时间限制才返回。
了解到以上内容, 那REST 世界的"交通灯"规则是什么样的?...POST /users/12 HTTP/1.1X-HTTP-Method-Override: PUT 上面代码中, X-HTTP-Method-Override指定本次请求的方法是 PUT,而不是 POST...这是一个很错误的观念,RESTful 的设计理念之一是简单直观,试想一下,前端开发人员打开开发者工具,所有请求都是200的状态码,但是页面数据就是没有显示出来,难道前端开发人员还要每个接口调用点开看一看...找不到要删除的内容 使用状态码 202 有时候会比 使用状态啊吗 201 是更好的选择,状态码 202 的意思是:服务端已接收到了请求,但是还没有创建任何资源,但结果一切正常。...) 4xx 状态码 4xx 状态码表示客户端的错误,主要有以下几种: 400BadRequest:服务器不理解客户端的请求,未做任何处理 401Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证
通常,这些状态代码用来重定向。 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。 5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。 ...416 如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。 ...203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,但没有返回任何内容。...205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。 206 (部分内容) 服务器成功处理了部分 GET 请求。 3xx (重定向) 表示要完成请求,需要进一步操作。
状态代码由 section 10 of RFC 2616定义 信息响应 100 Continue 这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。...102 Processing (WebDAV) 此代码表示服务器已收到并正在处理该请求,但没有响应可用。...使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。 204 No Content 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...304 Not Modified 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。
,比如创建 id 为 123 的某个资源 如果是创建了资源,则返回 201 Created 如果是替换了资源,则返回 200 OK 完成请求后需要返回被修改的资源详细信息 PATCH用于局部更新资源 完成请求后返回状态码...如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间(内容可以为数字,单位为秒;或者是一个 HTTP 协议指定的时间格式)。...如果没有给出这个 Retry-After 信息,那么客户端应当以处理 500 响应的方式处理它。...如果资源没有进行过修改,那么就可以响应 304 Not Modified 并且不在响应实体中返回任何内容。...客户端发起的请求如果没有包含 If-Unmodified-Since 或者 If-Match 头,那就返回状态码 403 Forbidden ,在响应正文中解释为何返回该状态码 客户端发起的请求提供的
领取专属 10元无门槛券
手把手带您无忧上云