zoukankan      html  css  js  c++  java
  • Java++:不要随意使用 Cookie 会引火烧身的

    今天也是处理一个bug的时候,发现的这个服务器错误问题。“400 Bad Request” -- nginx/0.6.31

    今天有人汇报nginx的HTTP400错误,而且这个HTTP400错误并不是每次都会出现的,查了一下发现nginx 400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。

    采用nginx服务器的话修改方法:

    是不要在cookie里记录过多数据,如果实在需要的话可以考虑调整在 nginx.conf 中的 client_header_buffer_size (默认1k)

    若cookie太大,可能还需要调整large_client_header_buffers (默认4k),该参数说明如下:

    请求行如果超过buffer,就会报HTTP 414错误(URI Too Long)

    nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。

    /usr/local/nginx/conf   在这个路径下面,修改nginx.conf

    http
    {
       include  mime.types;
       default_type  application/octet-stream;
       server_names_hash_bucket_size 128;
       client_header_buffer_size 16k;  //这里默认是4K,改大一点就好了
    }
     
    实例配置:
    http
    {
     
    **********
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    **********
    }

    后端 springboot 配置:

     server: max-http-header-size: 64KB

    这个 cookie 最大设置到 32k ,超过也会报错但不是 400

    尽量不要将信息储存到 cookie ,可以存在localstorage里面。

  • 相关阅读:
    谨以此文纪念一周的心血历程
    面向对象初调用:foolish 电梯
    洛谷 1016 旅行家的预算
    洛谷 1514 引水入城
    洛谷 3178 树上操作
    洛谷 3811 【模板】乘法逆元
    洛谷 1156 垃圾陷阱
    洛谷 1363 幻想迷宫
    洛谷 1736 创意吃鱼法
    洛谷 1436 棋盘分割
  • 原文地址:https://www.cnblogs.com/codingmode/p/15346641.html
Copyright © 2011-2022 走看看