问题标签 [http-status-code-308]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
13291 浏览

http-status-codes - HTTP状态码308是怎么回事?

IETF RFC 草案超文本传输​​协议 (HTTP) 状态代码 308(永久重定向)将 HTTP 状态 308 定义为永久重定向。当然,应该注意的是,这是一份草稿文件,在其文件标题中包含文本“过期:2012 年 9 月 27 日”,我认为这意味着它现在应该被视为无效,但我不熟悉IETF 的流程,因此对此没有信心。

维基百科文章HTTP 状态代码列表使用 308 的定义,也:

308 永久重定向(被批准为实验性RFC[12]

应使用另一个 URI 重复该请求以及所有未来的请求。307 和 308(如提议的)与 302 和 301 的行为平行,但不允许 HTTP 方法更改。因此,例如,将表单提交到永久重定向的资源可能会顺利进行。

...

[12]:“超文本传输​​协议 (HTTP) 状态代码 308(永久重定向)”国际能源交易基金。2012. 2012 年 3 月 27 日检索。

当时微软的 Eric Law 在Pushing the Web Forward with HTTP/308中评论了这个 HTTP/308 代码。这让我发现Firefox在这个意义上支持308。

但是,在查看库的时候,发现308还有另一种用法:

这似乎来自 Google Gears 的可恢复 HTTP 请求提案,定义308 Resume Incomplete。似乎有一些用法。当然,这些提议都没有承认另一个的存在。

发生什么了?308 Permanent Redirect还活着吗?状态码 308 发生了什么?我该怎么办?

0 投票
2 回答
1388 浏览

c# - 无效的 HttpStatusCode

我们正在使用外部休息 API (Vimeo) 将视频从手机上传到服务器。执行此操作的步骤之一是检查已上传了多少字节。为此,应在带有标头的特定 URL 上执行 PUT 请求:
- 授权承载 d4559ba...
- 内容范围字节 */*

API 的响应是:
- 200 Ok - 如果上传完成
- 308 Resume Incomplete - 带有 Range 标头(例如 Range bytes=0-1000),提供已上传多少字节的信息

问题是 Xamarin 中的枚举 HttpStatusCode ( https://developer.xamarin.com/api/type/System.Net.HttpStatusCode/ ) 不包含值 308 ,因此在调用 client.PutAsync 期间抛出异常:{ System.Net.WebException:无效状态代码:308 ---> System.Net.ProtocolViolationException:无效状态代码:308 在 System.Net.HttpWebRequest.Redirect ... }

知道如何解决此错误吗?这是我们正在使用的 C# 代码:

编辑:我尝试将 DelegatingHandler 与此代码一起使用:

问题是 base.SendAsync 抛出异常并且没有到达下一行代码(if 语句)。我应该以另一种方式使用委托处理程序吗?

编辑:我尝试将 RestSharp 与此代码一起使用:

通过此请求,我收到错误的状态代码,这意味着请求未正确创建。也许 Content-Range 标头未正确添加,Vimeo 服务器无法读取它。还有其他方法可以添加此标头吗?

0 投票
1 回答
63443 浏览

http - HTTP 301 和 308 状态码有什么区别?

301HTTP和308状态码有什么区别?

  • 301(永久移动):这个和所有未来的请求都应该被定向到给定的 URI。

  • 308(永久重定向):应使用另一个 URI 重复请求和所有未来的请求。

他们似乎很相似。

0 投票
3 回答
6555 浏览

http - 哪些浏览器支持 307/308 重定向以及它们如何处理它们?

大多数现代浏览器都接受307 和 308 重定向 ( https://www.rfc-editor.org/rfc/rfc7538 )。

然而,在谷歌搜索很多时,我无法找到支持 307/308 重定向的浏览器版本列表。许多帖子都喜欢:HTTP 状态码 308 是怎么回事?只需询问是否支持 308 重定向。

我知道一些较旧的浏览器不支持 307/308 重定向(https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308),但尚不清楚哪个浏览器版本不'吨。

所以我的问题是,哪些浏览器版本支持 307/308 重定向?

旧版浏览器如何处理此状态码?他们只是失败了吗?

0 投票
2 回答
950 浏览

.htaccess - htaccess 永久重定向引发内部服务器错误

在Apache 2.2的mod_rewrite 文档[R]中,RewriteRule标志指出:

可以使用语法 [R=305] 指定任何有效的 HTTP 响应状态代码,如果未指定,则默认使用 302 状态代码。指定的状态代码不一定是重定向 (3xx) 状态代码。但是,如果状态代码超出重定向范围 (300-399),则替换字符串将被完全删除,并停止重写,就像使用了 L 一样。

除了响应状态代码之外,您还可以使用其符号名称指定重定向状态:(temp默认)permanent、 或seeother

然而,以下代码片段似乎只允许“符号名称”:

错误日志显示:

[2017 年 5 月 23 日星期二 23:11:12] [警报] [客户端 192.168.33.1] /var/www/html/ventus/.htaccess: RewriteRule: 标志“R”的 HTTP 响应代码“308”无效

但是,308 似乎是永久重定向的 HTTP 状态代码:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308

这是 Apache 中的错误还是我做错了什么?

0 投票
1 回答
1106 浏览

qt - QNetworkAccessManager 不处理 HTTP 状态代码 308

我正在测试我的代码与 HTTP 3xx 状态代码(重定向)的兼容性。

我对代码 301、302、303、307 和 308 感兴趣。

除了 308 之外,所有这些都适用于我的代码。

我的客户端测试用例是基于 Qt/C++ 的,我的测试服务器是基于 python 的。我将发布两者的代码。

客户端.cpp

test_server.py

我运行服务器,然后在运行时运行客户端并got 0 bytes进入控制台。如果我将响应从 308 更改为 301,它可以正常工作(打印got 3 bytes)。

知道为什么吗?

注意:重定向在 Chrome 中运行良好,因此我的服务器代码可能是正确的。

注意:它似乎被记录为不受支持。从文档

如果在请求中设置了 QNetworkRequest::FollowRedirectsAttribute 并且服务器以 3xx 状态(特别是 301、302、303、305 或 307 状态代码)响应,并且位置标头中的有效 url 表示 HTTP 重定向,则会发出此信号.

(强调我的)

不过,我仍然想知道为什么

0 投票
1 回答
1127 浏览

http - HTTP 2 中是否引入了 HTTP 状态代码 308(“永久重定向”)?

发现Qt 不支持状态码 308。我想知道为什么会这样。我也知道并非“实施 HTTP 2”Qt 任务的所有子任务都已完成。因此,如果在 HTTP 2 中引入 308,我会注意在我的 Qt 应用程序中自定义实现 308 可能几乎是不可能的。

我检查了HTTP 1.1 规范,那里似乎没有 308。

我在推断 HTTP 2 中引入了 308 是否正确?

0 投票
0 回答
174 浏览

email - Google App Engine 使用代码 308 响应

问题

1.我有一个在 Google App Engine 上运行的 sns 服务

2.sns服务使用go作为后端运行

3.sns服务正在使用crob作业请求Api A

4.Api A 正在将另一个 http 请求(对 Api B 的请求)添加到任务队列中

5.Api A请求后立即执行taskqueue

6.执行Api B的请求

7.Api B回复代码308

问题总结

job cron(请求 Api A) -> Api A -> 任务队列(堆栈请求 Api B) -> Api B -> 一些执行

Api A 回复 200 Api B 回复 308

问题

为什么 Api B 以 308 的代码响应?

补充


顺便说一下下面的顺序是成功的

post man (请求 Api A) -> Api A -> 任务队列(请求 Api B) -> Api B -> 一些执行

Api A 回复 200 Api B 回复 200

当我使用邮递员请求 Api A 时,以下对 Api B 的请求以 200 响应

我使用任务队列的方式就像

谷歌云平台的日志如下

Api A 的响应

Api B 的响应

0 投票
1 回答
57 浏览

java - com.algorithmia.APIException:308 意外的 API 响应

我正在使用 algorithmia,它是 Internet 上训练有素的 ML 函数的存储库。几周前,出现了一个问题,从那时起,就无法弄清楚发生了什么。我正在执行这段代码,可以在他们的官方网站上找到。

但是这段代码引发了以下异常:

我想帮忙

  1. 创建一个maven项目
  2. 添加这个 Maven 依赖项
  1. 粘贴上面显示的代码

进一步的观察和猜测

  • 发出 cURL 请求一切都按预期工作
  • 使用 Python 工作正常
  • 它可能与HttpClient
  • Java 代码将与类似的代理一起使用Charles
  • 参考GitHub 上打开的 issue
0 投票
0 回答
150 浏览

get - GET 请求通过 PostMan 成功,但通过 Spring RestTemplate Exchange 方法调用提供 308 永久重定向

GET 请求包含类似于以下内容的 JSON 有效负载: { "customeId" : "A123", "Status" : "Assigned", "StartDate" : "2020-07-18", "EndDate" : "2020-07-20 ", "FetchLimit" : "10" } 我正在使用多值映射来添加这些输入以及标题(内容类型、接受、相关 ID)。相同的请求有效负载通过 Postman 提供响应,但是当我使用 RestTemplate.exchange(URL, HttpMethod.Get ,entity, Response.class) 进行 GET 调用时,收到的响应为 308 PERMANENT REDIRECT。对解决方案的任何想法都会很棒!TIA ###下面的代码片段####