解决“400 Bad RequestThe plain HTTP request was sent to HTTPS portnginx/1.23.1”

文章讲述了在浏览器尝试使用HTTP访问需要HTTPS的IP地址时遇到400错误的问题。原因在于浏览器默认使用HTTP,导致服务器无法处理。解决方法是明确指定HTTPS协议。同时,文章解释了为何其他网站可以自动升级为HTTPS,归功于HSTS和自动重定向的设置。
摘要由CSDN通过智能技术生成

目录

一、问题描述

二、问题解决

三、问题原因

(1)问题成因

(2)那为什么访问其他网站的时候,其不会出错呢?而且自己会用https协议?


一、问题描述

       在浏览器直接输入:“xxx.xxx.xxx.xxx:8443”后,报错

400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx/1.23.1

二、问题解决

     在浏览器直接输入:“https://xxx.xxx.xxx.xxx:8443”, 成功访问

三、问题原因

(1)问题成因

        这个错误信息表明在尝试访问一个使用HTTPS(安全HTTP)的网站时,发送了一个普通的HTTP请求。HTTP和HTTPS是两种不同的协议,HTTP不提供数据加密,而HTTPS则通过SSL/TLS证书对传输的数据进行加密,以保护数据的安全。

        当直接输入IP地址和端口号(例如"xxx.xxx.xxx.xxx:8443")时,浏览器默认使用的是HTTP协议。因此,当尝试访问需要HTTPS的网站时,服务器会返回一个"400 Bad Request"错误,因为服务器无法处理HTTP请求

        要解决这个问题,需要在URL中明确指定使用HTTPS协议。这样,浏览器就会发送一个HTTPS请求,服务器就能够正确地处理该请求并返回相应的页面。所以,正确的URL应该是"https://xxx.xxx.xxx.xxx:8443"。

(2)那为什么访问其他网站的时候,其不会出错呢?而且自己会用https协议?

        访问某些网站时,即使您只输入域名而不是完整的HTTPS URL(例如入"www.example.com"

而非"https://www.example.com"),浏览器通常仍能自动将HTTP请求升级为HTTPS请求,这是因为许多现代网站都启用了HSTS(HTTP Strict Transport Security,严格传输安全策略)。

        HSTS是一种安全策略机制,允许服务器告知浏览器,在一定时间内应该始终通过HTTPS与该服务器通信,即使用户在地址栏输入的是HTTP链接。这样一来,浏览器收到服务器的HSTS策略后,下次及之后对该域的所有请求都会自动转换为HTTPS请求

        另外,一些网站还会通过重定向的方式,将HTTP请求自动重定向至HTTPS版本,以确保用户总是通过安全连接访问网站。这种情况下,即使您输入的是HTTP地址,服务器也会马上将您的访问引导至对应的HTTPS地址,从而避免了报错。

        因此,对于那些配置了HSTS或者设置了自动重定向的网站,即使您没有明确输入HTTPS,也能正常访问到HTTPS版的网站内容。而对于特定IP地址和端口,尤其是非标准端口(比如8443在这个例子中),如果没有类似的配置,浏览器就无法知道它应当使用HTTPS,也就无法自动转换协议,这时就需要手动指定HTTPS协议来访问

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值