【Nginx】POST请求跳转后变为GET请求 308 307状态码

这篇具有很好参考价值的文章主要介绍了【Nginx】POST请求跳转后变为GET请求 308 307状态码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于nginx中配置了http强制跳转https的配置,导致从http接收到的POST请求无法正常响应,是因为POST 请求经过 rewrite跳转后变成了GET请求

PSOT 请求 http://domain/uri -> 301 rewrite -> GET 请求 https://doamin/uri

各个跳转状态码的含义

301

Moved Permanently:该方式将所有的 HTTP 请求重定向到 HTTPS 上,并且该重定向是永久性的。客户端在收到 301 响应后,会自动将 HTTP 请求转为 GET 请求,同时将请求地址修改为重定向后的地址。这意味着,如果原始请求是 POST 请求,那么 301 重定向会将其转变为 GET 请求。此外,浏览器会缓存 301 响应,下一次请求时会直接跳转到 HTTPS 上。

302

Found / 303 See Other:这两种方式将所有的 HTTP 请求临时性地重定向到 HTTPS 上。302 Found 的响应会将请求方法保持不变,同时将请求地址修改为重定向后的地址。而 303 See Other 则会将所有请求方法转变为 GET 方法,并将请求地址修改为重定向后的地址。这两种方式都不会缓存响应,下一次请求时会再次发起请求

307

Temporary Redirect:该方式将所有的 HTTP 请求临时性地重定向到 HTTPS 上,并且会保留原始的请求方法。这意味着,如果原始请求是 POST 请求,那么重定向后的请求仍然是 POST 请求。同时,请求地址也会被修改为重定向后的地址。与 302 Found 类似,307 Temporary Redirect 不会缓存响应,下一次请求时会再次发起请求。

308

Permanent Redirect:该方式将所有的 HTTP 请求重定向到 HTTPS 上,并且该重定向是永久性的。客户端在收到 308 响应后,会自动将 HTTP 请求转为与原始请求方法相同的请求方法,同时将请求地址修改为重定向后的地址。与 301 Moved Permanently 不同的是,308 Permanent Redirect 不会允许浏览器将 POST 请求重定向到新地址。308 响应也会被缓存,下一次请求时会直接跳转到 HTTPS 上。

需要注意的是,不同的重定向方式可能会对请求方法、请求地址、缓存等方面产生不同的影响。因此,在选择重定向方式时,需要根据具体的需求进行选择。通常情况下,推荐使用
301 Moved Permanently 或 308 Permanent Redirect 将 HTTP 重定向到 HTTPS
上,并且需要注意 POST 请求的处理方式。文章来源地址https://www.toymoban.com/news/detail-509868.html

解决办法

server {
    listen 80;
    server_name example.com;
    return 308 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;
    # HTTPS 相关配置
    ...
}

到了这里,关于【Nginx】POST请求跳转后变为GET请求 308 307状态码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx 301 https跳转后出现跨域和混合内容问题 —— 筑梦之路

    在浏览器地址栏敲入url访问静态资源目录时,发现默认跳转到了http协议的地址 如上图所示,客户端https请求先到达API网关,然后网关将请求通过http协议转发到静态资源服务器。 调出浏览器发现客户端发送的https请求收到了一个301状态码的响应,并且响应头中的Location字段便是

    2024年02月15日
    浏览(41)
  • nginx设置重定向跳转后ip:[端口]/abc变成ip/abc而报错404

    nginx设置重定向跳转后   ip:[端口]/abc   变成   ip/abc   而报错404 nginx配置: 本地测试项目是否能正常访问: http://192.168.1.22:8088 正常访问 http://192.168.1.22/abc 正常访问 当我需要将192.168.1.22:8088映射到外网ip:[port] 进行外网访问时报错。 假设外网ip=122.23.43.21 路由分配: 122

    2024年02月08日
    浏览(48)
  • HTTP请求:GET/POST请求

    GET  用于:地址栏请求  通过url请求 POST 用于:表单请求 DELETE 用于删除 PUT 用于更新 GET的请求直接嵌入在路径中URL是完整的请求路径,包括了 ?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数 node.js是UEL模块中的parse函数提供了这个功能。 util是node.js常用工具

    2024年02月16日
    浏览(68)
  • POST请求与GET请求的区别

    (提交数据,一般用于将数据发给服务器,用于修改和写入数据) 1、传参方式:相对安全,入参在request body中,可通过各种抓包工具获取 2、缓存:不会被缓存,保存在服务器日志记录以及浏览器浏览记录中 3、请求内容限制:可以发送的数据更大,能发送更多数据类型 4、

    2024年02月07日
    浏览(50)
  • linux执行post请求和get请求

    2024年02月12日
    浏览(37)
  • httpclient发送Get请求和Post请求

    1). 创建HttpClient对象,可以使用 HttpClients.createDefault() ; 2). 如果是无参数的GET请求,则直接使用构造方法 HttpGet(String url )创建HttpGet对象即可; 3)如果是带参数GET请求,则可以先使用 URIBuilder (String url)创建对象,再调用 addParameter (Stringparam, String value)`, 或setParameter(String param

    2024年02月06日
    浏览(63)
  • Flask get &post请求

    python:3.8.0 flask: 2.3.2 postman:9.12.2 Flask deleteput请求传送门:FLASK DELETEPUT 0.0.0.0 : 由于我使用的是 虚拟机,所以指定同一局域网中可反问 debug :开启debug模式,修改程序后会自动部署,无需重启程序 请求举例:http://ip:5000/user?user_name=neil 限定请求只响应路径为 /user 时的 get 请求 使

    2024年02月15日
    浏览(41)
  • chrome 模拟发送POST请求和GET请求

    F12打开Console输入以下代码:

    2024年02月11日
    浏览(52)
  • OkHttpClient如何发get请求以及post请求

    加入依赖 写代码 2.1配置OkHttpClient 2.2请求参数 2.3请求头配置 加入依赖 写代码 2.1配置OkHttpClient 2.2请求参数 2.3请求头配置

    2024年02月13日
    浏览(43)
  • 使用Postman发送GET请求和POST请求

    Postman是一款流行的API测试和开发工具,它提供了一个易于使用的界面,用于发送HTTP请求并与REST、SOAP和其他Web服务进行交互。以下是对Postman的简单介绍: 发送HTTP请求:Postman允许您以简单直观的方式发送各种类型的HTTP请求(GET、POST、PUT、DELETE等)到指定的URL。您可以设置请

    2024年02月05日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包