Questions tagged «http-status-codes»

HTTP状态代码是HTTP Web响应中返回的一组标准化代码。有关服务为何(意外)返回状态代码的问题不应使用此标记。

3
带有参数数据的Python请求发布
这是对API调用的原始请求: POST http://192.168.3.45:8080/api/v2/event/log?sessionKey=b299d17b896417a7b18f46544d40adb734240cc2&format=json HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/json Content-Length: 86 Host: 192.168.3.45:8080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) {"eventType":"AAS_PORTAL_START","data":{"uid":"hfe3hf45huf33545","aid":"1","vid":"1"}}""" 该请求返回成功(2xx)响应。 现在,我尝试使用发送此请求requests: >>> import requests >>> headers = {'content-type' : 'application/json'} >>> data ={"eventType":"AAS_PORTAL_START","data{"uid":"hfe3hf45huf33545","aid":"1","vid":"1"}} >>> url = "http://192.168.3.45:8080/api/v2/event/log?sessionKey=9ebbd0b25760557393a43064a92bae539d962103&format=xml&platformId=1" >>> requests.post(url,params=data,headers=headers) <Response [400]> 一切对我来说看起来不错,我不太确定自己张贴的错误是什么引起400响应。




3
重定向到登录页面时正确的HTTP状态代码是什么?
当用户未登录并尝试访问需要登录的页面时,重定向到登录页面的正确HTTP状态代码是什么? 我问是因为W3C 提出的3xx响应代码似乎都不符合要求: 10.3.1 300个多项选择 所请求的资源对应于一组表示中的任何一个,每个都有自己的特定位置,并且提供了代理驱动的协商信息(第12节),以便用户(或用户代理)可以选择首选表示并重定向其表示。请求到该位置。 除非它是HEAD请求,否则响应应包含一个实体,其中包含资源特征和位置的列表,用户或用户代理可以从中选择最合适的一个。实体格式由“内容类型”标头字段中提供的媒体类型指定。取决于格式和功能 用户代理,可以自动执行最合适的选择。但是,该规范没有为这种自动选择定义任何标准。 如果服务器具有首选的表示形式,则应在“位置”字段中包含该表示形式的特定URI;用户代理可以使用“位置”字段值进行自动重定向。除非另有说明,否则此响应是可缓存的。 10.3.2 301永久移动 所请求的资源已被分配了一个新的永久URI,对该资源的任何将来引用都应使用返回的URI之一。具有链接编辑功能的客户端应在可能的情况下自动将对Request-URI的引用重新链接到服务器返回的一个或多个新引用。除非另有说明,否则此响应是可缓存的。 新的永久URI应该由响应中的Location字段给出。除非请求方法是HEAD,否则响应的实体应该包含简短的超文本注释,并带有指向新URI的超链接。 如果响应GET或HEAD以外的请求而收到301状态码,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会更改发出请求的条件。 Note: When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP/1.0 user agents will erroneously change it into a GET request. 10.3.3找到302 所请求的资源临时位于其他URI下。由于重定向有时可能会更改,因此客户端应继续将Request-URI用于将来的请求。仅当由Cache-Control或Expires标头字段指示时,此响应才可缓存。 临时URI应该由响应中的Location字段给出。除非请求方法是HEAD,否则响应的实体应该包含简短的超文本注释,并带有指向新URI的超链接。 如果响应GET或HEAD以外的请求而收到302状态码,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会更改发出请求的条件。 Note: RFC 1945 and RFC 2068 …

7
使用POST创建请求,其响应代码为200或201以及内容
假设我编写了一个REST服务,其目的是向系统添加新的数据项。 我打算发布到 http://myhost/serviceX/someResources 假设可行,我应该使用什么响应代码?我可能会返回什么内容。 我正在查看HTTP响应代码的定义,并看到了以下可能性: 200:返回描述或包含动作结果的实体; 201:表示已创建 含义*该请求已得到满足,并导致创建了新资源。可以通过响应实体中返回的URI引用新创建的资源,其中最具体的URI由Location头字段给出。响应应包括一个实体,其中包含资源特征和位置的列表,用户或用户代理可以从中选择最合适的一个。实体格式由Content-Type标头字段中提供的媒体类型指定。* 后者听起来更符合Http规范,但我不清楚 响应应包含一个实体,其中包含资源特征和位置的列表 手段。 建议?解释?


4
什么是“找不到项目”错误页面的最合适的HTTP状态代码?
我很好奇“项目不存在”页面最合适的HTTP状态代码是什么。 如果该页面本身不存在,那么我显然会使用404。但是,我的页面之一有一个userid参数(它是“编辑用户”页面),并且如果不存在具有给定用户ID的用户,我将显示一个错误页面,但我也想发送4xx状态标头(因为“ 200 OK”确实不合适)。 我猜想404可以,因为它是“未找到”而不是“未找到文件”,但是我想知道在这种情况下是否有更好的代码。

4
部分成功请求的HTTP状态代码
我有一个向用户发送消息的应用程序。在发布请求中,将传输XML字符串,该字符串由应接收该特定消息的所有用户组成。如果列表中的任何用户都不存在,我会将丢失的用户列表返回给客户端,以进行进一步评估。 现在我要问自己,应用程序的正确状态代码是什么,它表示请求已被接受,但是有些事情无法完成。 如果不允许在列表中包含丢失的用户,则可以避免该问题。然后,发送尝试将仅收到4xx错误。但是以这种方式形成API毫无意义。另一方面,我可以认为错误情况纯粹是特定于应用程序的。但是发送200只是感觉不对。最好在发生错误响应时向客户端提供提示。例如,避免一遍又一遍地向该用户发送消息

7
对于一般的不成功请求(不是错误),适当的HTTP状态代码响应是什么?
我正在创建一个RESTful API,它将处理许多用户交互,包括使用存储的信用卡下订单。 如果订单成功,我将返回200 OK,如果订单请求格式错误或无效,我将返回400 Bad Request。但是,如果订单的实际处理过程中出现问题,我应该退货吗? 客户端向服务器发送POSTS命令以获取用户资源。如果用户不存在,则返回404 Not Found。 订单格式和信息已验证。如果无效,则返回400 Bad Request。 订单已处理。如果订单成功,则为订单返回201 Created。如果遇到意外错误,则返回500服务器错误。 最后一步是问题-如果由于其他原因导致订单未完成,我该怎么办?可能的情况包括: 产品售罄 达到用户最大订单数限制 信用卡交易失败(资金不足等) 这似乎不适合400或500。如果没有更好的代码,如果我能将其视为400,则根据业务规则,该请求无效。它似乎并不准确。 编辑:还发现了同一主题的现有讨论。那里的所有答案似乎都指向针对这种类型的违规使用状态码,并在使用400、409或422扩展名之间进行了一些讨论。


12
HTTP状态码0-错误域= NSURLErrorDomain?
我正在开发一个iOS项目。 在此应用程序中,我正在从服务器下载图像。 问题: 下载图像时,我收到请求超时。根据文档,请求超时的HTTP状态代码为408。 但是在我的应用程序中,我收到0带有以下错误的HTTP状态代码 错误域= NSURLErrorDomain代码= -1001“请求超时。” UserInfo = 0xb9af710 {NSErrorFailingURLStringKey = http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg,NSErrorFailingURLKey = http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg,NSLocalizedDescription =请求超时。,NSUnderlyingError = 0xx13846870“请求超时。”} 在搜索过程中,通过互联网,我没有找到有关HTTP状态码0的信息。 谁能向我解释一下?


4
返回202“已接受”以响应HTTP GET是否错误?
我有一组延迟创建的资源。构造这些表示的计算可能要花费几毫秒到几小时不等,具体取决于服务器负载,特定资源和月球相位。 收到的对资源的第一个GET请求开始在服务器上进行计算。如果计算在几秒钟内完成,则返回计算的表示形式。否则,将返回202“已接受”状态代码,并且客户端必须轮询资源,直到最终表示可用为止。 出现这种现象的原因如下:如果结果在几秒钟内可用,则需要尽快对其进行检索。否则,何时可用并不重要。 由于有限的内存和庞大的请求量,NIO或长时间轮询都不是一种选择(即,我无法打开几乎足够的连接,甚至什至无法容纳所有请求;一次“几秒钟”)已通过,我将保留多余的请求)。同样,客户端的限制使得它们不能处理完成回调。最后,请注意,我对创建一个“工厂”资源并没有兴趣,因为额外的往返行程意味着我们使分段实时约束失败的程度超出了期望(此外,这是额外的复杂性;此外,这是一种资源受益于缓存)。 我以为在响应GET请求时返回202“已接受”状态代码存在一些争议,因为我在实践中从未见过这种方法,并且最直观的用法是响应不安全的方法,但是我从未发现任何特别令人沮丧的东西。此外,我既不保留安全性又没有幂等性吗? 那么,人们如何看待这种方法呢? 编辑:我应该提到这是针对所谓的业务Web API的,而不是针对浏览器的。

8
获取网址列表的HTTP状态代码的脚本?
我有需要检查的URL列表,以查看它们是否仍然有效。我想写一个为我做的bash脚本。 我只需要返回的HTTP状态代码,即200、404、500等。而已。 编辑请注意,如果页面显示“ 404 not found”,但返回200 OK消息,则存在问题。这是配置错误的Web服务器,但您可能不得不考虑这种情况。 有关更多信息,请参阅检查URL是否转到包含文本“ 404”的页面。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.