转载

接口使用https 为什么是一大段返回,而http是一行一行返回?

背景:

最近在调试chatgpt对话网站,因为返回数据比较大,就用到到了流读取。开始调用http一点都没有问题,但是上生产切换https时候始终抱错?这个问题纠结2天,终于在你chatgpt加持解决了

接口地址 :https 为什么是一大段返回,而http是一行一行返回?

这是因为 httpshttp 协议在传输数据时使用的是不同的传输方式。 http 协议使用的是明文传输,数据是一行一行地传输的,每行数据以回车符和换行符结尾。这种传输方式比较简单,但是不够安全,容易被窃听和篡改。 https 协议使用的是加密传输,数据是一大段一大段地传输的,每段数据的长度是不固定的。这种传输方式比较安全,可以保护数据的机密性和完整性,但是相对于 http 协议来说,传输效率会稍微低一些。 因此,如果你需要传输机密性较高的数据,建议使用 https 协议进行传输。如果你需要传输的数据不太机密,可以使用
http 协议进行传输。

如果要改成https 如果要改成一行一行返回,如何修改nginx配置?

如果你想要将 HTTPS 协议下的数据返回方式改为一行一行返回,可以通过修改 Nginx 的配置文件来实现。
在 Nginx 的配置文件中,可以通过 proxy_bufferingproxy_buffer_size 这两个参数来控制数据的缓存和传输方式。默认情况下,Nginx 会开启缓存,将数据缓存到内存中,然后一次性传输给客户端。如果你想要将数据一行一行地传输给客户端,可以将 proxy_buffering 参数设置为 off,并将 proxy_buffer_size 参数设置为一个较小的值,例如 1。 以下是一个示例配置文件:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://backend;
        proxy_buffering off;
        proxy_buffer_size 1;//这个实际作用不大,可以注销掉
    }
}
在这个示例配置文件中,我们将 proxy_buffering 参数设置为 off,并将 proxy_buffer_size 参数设置为 1,这样就可以将数据一行一行地传输给客户端了。同时,我们还开启了 HTTPS 协议,并指定了 SSL 证书和私钥的路径。
最后 配置完后,nginx重新加载一下配置
nginx -s reload
完整支持hhttps了,大家可以注册账号尝试一下,认识我的联系我,免费送一个月会员, https://yizhan.club  
正文到此结束
Loading...