前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >308状态码

308状态码

作者头像
只喝牛奶的杀手
发布于 2025-05-20 11:08:49
发布于 2025-05-20 11:08:49
1320
举报

就在上周六时候,突然有服务找过来报308,我是一脸懵逼啊,怎么会报308,postman分明是测试过的,而且返回的也是200。

但是服务端就是308啊?一顿操作猛如虎,各种排查,后来得出结论:业务方的外网接口挂载的域名没有做外网解析。本着节假日不找事原则,果断会滚。今天又重新思考了一下这个问题,觉得当时的结论太仓促,为什么不能转发到内网域名?外网接口经过平台必须做外网域名解析吗?

我们先了解一下什么是重定向?服务端就直接返回了3xx状态码,并在 Location 头中指定目标 URL。请求重定向请求,除了状态码使用3xx之外,在浏览器访问过程中,浏览器地址栏也会变成Location头指定的目标URL。

HTTP临时重定向:302、303 和 307;HTTP永久重定向:301 和 308。

HTTP 状态码 301 和 308 用于永久重定向请求,表明请求的资源被永久迁移到了新的URL。永久重定向适用于网站重构或从 HTTP 迁移到 HTTPS。

301 和 308 之间的区别在于, 301 重定向的情况下,客户端会将重定向请求转换为 GET 请求,308 则会保留原始请求方法。

所以,在POST请求的永久重定向请求中,我们需要使用308,保证重定向之后,可以发送相同的请求到目标URL。

postman可以,Java代码中不可以。308状态码可能会碰到客户端不支持的情况,那么Java 中的HttpURLConnection支不支持呢?

https://bugs.openjdk.org/browse/JDK-8292281

想到这里应问题应该能用正确的方法解决了,正确解决不让客户端不重定向。Http状态码这个东西很重要,网络排查能力也很重要。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 只喝牛奶的杀手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档