Request header or cookie too large как исправить

При переходе на какой-либо сайт, или выборе какого-либо из подразделов сайта, пользователь может столкнуться с сообщением «Request Header Or Cookie Too Large», при этом дальнейший переход по выбранной ссылке становится невозможен. Обычно это связано с повреждёнными куками данного сайта на пользовательском ПК, но также возможна ситуация, когда в появлении проблемы виноваты некорректные настройки данного ресурса, установленные веб-мастером.

Скриншот ошибки Request Header

Также может возникать ошибка 404 описанная нами ранее.

Содержание

  1. Что это за ошибка и каковы и её причины
  2. Как исправить 400 Bad Request
  3. Заключение

Что это за ошибка и каковы и её причины

Перевод текста ошибки выглядит как «Заголовок запроса или куки слишком большие». Обычно это обозначает ситуацию, когда при запросе браузером доступа к какому-либо ресурсу сервер обнаруживает, что куки данного ресурса, хранящиеся на пользовательском ПК, слишком большие или повреждены. Сервер отказывает в обработке запроса, что сопровождается сообщением «400 bad request» («400 неверный запрос»), а также упомянутым мной месседжем.

Данная ошибка является типичной для серверов nginx (т.е. серверов, работающих на подобных к Unix операционных системах). После её появления доступ к запрошенному сайту (или его подразделу) становится невозможен, перезагрузка же проблемной страницы через Ctrl+F5 обычно ничего не даёт.

Кроме повреждённых куков, причиной появления данной дисфункции могут быть следующие детерминанты:

  • Различные браузерные расширения и плагины, блокирующие корректный доступ к нужному сайту;
  • Корректный доступ к кукам блокирует антивирус (приложение безопасности);
  • Куки браузера повреждены какой-либо вирусной программой;
  • Неверные настройки (проблемы в работе) запрошенного веб-сайта.Скрин ошибки 400

Как исправить 400 Bad Request

При попытке избавиться от возникшей проблемы важно учитывать, что проблема может быть как у вас (если вы обычный пользователь), так и на самом ресурсе. Потому если вы использовали все нижеприведённые советы для пользователя, и ничего не помогло, тогда, возможно, стоит обратиться с письмом в техническую поддержку ресурса (или непосредственно веб-мастеру), и обрисовать возникшую проблему.

Для решения проблемы «Cookie Too Large» следует выполнить следующее:

  • Полностью закройте, а потом вновь откройте ваш браузер. Несмотря на простоту данного совета, в некоторых случаях он оказывается довольно эффективным;
  • Временно отключите ваши антивирус и брандмауэр, дабы убедиться, что они не являются виновниками возникшей проблемы;
  • Проверьте ваш компьютер на наличие вирусных программ. Помогут специализированные инструменты уровня «Dr. Web CureIt!», «AdwCleaner» и другие аналоги; Окно Dr.Web CureIt!
    Проверьте ваш компьютер с помощью Dr.Web CureIt!
  • Отключите все лишние расширения (дополнения) для вашего браузера, чтобы убедиться, что они не являются катализаторами появления ошибки;
  • Очистите кэш и куки вашего браузера. Вы можете удалить куки как для данного сайта, так и все куки вашего браузера. Например, в Мозилле это делается переходом в настройки браузера – «Приватность и защита» — «Показать куки» – «Удалить выбранные» (для отдельного сайта) или «Удалить все» (для всех). Также нажмите на «Очистить сейчас» рядом с опцией «Кэшированное веб-содержимое» для очистки кэша;
  • Очистите журнал истории для проблемного сайта. Например, в Мозилле это делается переходом в «Настройки» – «Журнал» – «Показать весь журнал». В списке найдите нужный вам сайт, выберите его, кликните правой клавишей мыши, и в появившемся меню нажмите на «Забыть об этом сайте»;Иллюстрация очистки истории проблемного сайта
  • Используйте другой браузер для перехода на нужный сайт;
  • В случае, если вы веб-мастер, и проблема наблюдается на вашем ресурсе, попробуйте увеличить параметр «large_client_header_buffers» в nginx.

Это реализуется следующей записью:

Настройки параметра nginx

Заключение

Решением данной проблемы Request Header Or Cookie Too Large со стороны пользователя является удаление куков проблемного сайта на компьютере пользователя. А со стороны администрации ресурса эффективным способом решения проблемы станет изменение параметра «large_client_header_buffers» в nginx. В большинстве случаев реализация данных советов помогает избавиться от возникшей ошибки, возобновив полноценную работу с сайтом на вашем ПК.

Опубликовано 03 ноября 2017 Обновлено 01 октября 2020

Ошибка 400 Request Header Or Cookie Too Large в веб-сервере Nginx встречается достаточно редко. Данная ошибка означает, что отправленный запрос к веб-серверу слишком большой и был отклонен. Это может происходить по разным причинам.

Например, такое бывает, когда идет переход к веб-сайту из поисковой системы, и какой-то заголовок оказался слишком длинным. В этом случае Nginx «не ожидал» такого большого объёма в заголовке и сбросил соединение. В этой статье будет рассмотрено описание данной ошибки и как ее можно исправить.

Ошибка 400 Request Header Or Cookie Too Large воспроизводится, когда размер заголовков HTTP/HTTPS запроса больше допустимого предела. Например, браузер отправляет слишком много Cookie файлов или отправленный запрос к веб-серверу имеет слишком большой размер.

Запрос принято разделять на две части: заголовки – где находится общая информация и мета данные, и тело запроса. Тело запроса, как и заголовок может быть разного размера – как маленьким, так и большим и его размер как правило не вызывает никаких проблем. Однако если в настройках веб-сервера задан параметр на ограничение длины заголовка запроса, то есть вероятность получить данную ошибку. Скриншот с ошибкой изображён ниже:

H3ieJyKkIgENAAAAAElFTkSuQmCC

Как исправить ошибку Request header or cookie too large в Nginx

Для исправления данной ошибки (если вы администратор веб-сервера Nginx) необходимо увеличить максимальный размер заголовка при помощи изменения параметра large_client_header_buffers. Если же вы обычный пользователь веб-сайта, на котором возникла данная ошибка то необходимо дождаться пока ошибку исправит администратор ресурса.

Для исправления данной ошибки со стороны веб-сервера Nginx необходимо подкорректировать параметр large_client_header_buffers. Данный параметр принимает 2 числа, например 4 и 8 (которые заданы по умолчанию). Первое число – значение, которое задаёт максимальное число буферов, а второе число отвечает за размер буфера, в который считывается заголовок запроса. В второй параметр задаётся в килобайтах.

Данную строку необходимо добавить в секцию http конфигурационного файла конфигурационного файла Nginx или в секцию server для определённого сайта. Конфигурационные файлы веб-сайтов в Nginx обычно хранятся в /etc/nginx/conf.d/ или в /etc/nginx/sites-available/ (в зависимости каким образом был установлен Nginx – при помощи стандартных репозиториев операционной системы или при помощи репозитория Nginx).

Для корректировки значения можно задать числа 8 и 64 подходящие для хранения больших заголовков. В итоге параметр будет выглядеть следующим образом:

large_client_header_buffers 8 64k;

yjWvEa8rErlc8auw9WzuMjlZ0YaWREXGpDL3QiU0PfU1EY+z0qg+BtMpqf3XHRHV0bqtMpL5I14QT5lXNV9CIaYzdXeQ5R9qCEqdicER1ZADfi9WIuPPTwr0fjbVKelISDzC6I2KQPngkCCPK5ME7i91b7MRzA1k0QpQf+P93n2cesT31fAAAAAElFTkSuQmCC

После того как были внесены изменения в конфигурационный файл необходимо перезапустить Nginx при помощи команды:

sudo systemctl reload nginx

Выводы

В этой небольшой статье была рассмотрена ошибка 400 Request Header Or Cookie Too Large Nginx. Если у вас есть доступ к серверу, на котором расположен сайт, на котором возникает данная ошибка, то вы можете исправить ее за несколько минут. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Ошибка Request Header Or Cookie Too Large (Перевод «Request Header Or Cookie Too Large» звучит как «Заголовок запроса или куки слишком большие». ) возникает, когда nginx получает от браузера слишком большой заголовок запроса, это случается когда размер заголовков запроса больше допустимого предела установленного в настройках nginx’а. Например, ваш браузер отправляет на сервер слишком много cookies из-за этого размер запроса может быть достаточно большим и вы можете получать такую ошибку.

Решение проблемы

Для решения проблемы «Request Header Or Cookie Too Large» следует выполнить следующее:

  • закрыть браузер, а потом заново его откройте. Несмотря на простоту данного совета, в некоторых случаях он оказывается довольно эффективным;
  • Временно отключите ваши антивирус и брандмауэр, дабы убедиться, что они не являются виновниками возникшей проблемы;
  • Проверьте ваш компьютер на вирусы, возможно какие то вредоносные программы пытаются перехватить ваш трафик.
  • Очистите кэш и куки вашего браузера.

Если проблема не на стороне клиента, то скорее всего проблема находится на самом сервере.

За максимальный размер передаваемого пакета отвечают три параметра в конфигурации nginx, которые нужно разместить в секции http:

  • client_body_buffer_size – размер буфера для тела запроса;
  • client_header_buffer_size – размер буфера для заголовка;
  • large_client_header_buffers – максимальное количество и размер буфера для чтения большого заголовка.

Для того что бы устранить ее вам надо поправить настройки nginx’а:

http {
   ...
   large_client_header_buffers 4 16k;
   ...
}

Мы установили 4 буфера размером 16Кб каждый (по умолчанию 8Кб или 4Кб)

Далее мы перегружаем nginx через команду: nginx -s reload

Однако если у вас на сервере так же установлен Apache, то может возникнуть еще одна ошибка: «Your browser sent a request that this server could not understand. Size of a request header field exceeds server limit.» Для того чтобы устранить ее нам нужно добавить в конфигурацию сайта следующий параметр:

LimitRequestFieldSize 16380

который так же отвечает за максимальный размер запроса который обработает Apache.

I am getting a 400 Bad Request request header or cookie too large from nginx with my Rails app. Restarting the browser fixes the issue. I am only storing a string id in my cookie so it should be tiny.

Where can I find the nginx error logs? I looked at nano /opt/nginx/logs/error.log, but it doesn’t have anything related.

I tried to set following and no luck:

location / {
    large_client_header_buffers  4 32k;
    proxy_buffer_size  32k;
}

nginx.conf

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
  worker_connections  1024;
}
http {
passenger_root /home/app/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19;
passenger_ruby /home/app/.rvm/wrappers/ruby-1.9.3-p392/ruby;
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
client_max_body_size 20M;
server {
    listen       80;
    server_name  localhost;
    root /home/app/myapp/current/public;
    passenger_enabled on;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;

# location / {
#   large_client_header_buffers  4 32k;
#   proxy_buffer_size  32k;
# }

     #  location / {
     #   root   html;
     #   index  index.html index.htm;
     #   client_max_body_size 4M;
#   client_body_buffer_size 128k;
# }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}


# HTTPS server
#
#server {
#    listen       443;
#    server_name  localhost;

#    ssl                  on;
#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;

#    ssl_session_timeout  5m;

#    ssl_protocols  SSLv2 SSLv3 TLSv1;
#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers   on;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

}

Here’s my code storing the cookies and a screenshot of the cookies in Firebug. I used firebug to check stored session and I found New Relic and jQuery are storing cookies too; could this be why the cookie size is exceeded?

enter image description here

def current_company
  return if current_user.nil?
  session[:current_company_id] = current_user.companies.first.id if session[:current_company_id].blank?
    @current_company ||= Company.find(session[:current_company_id])
end

If you are getting the Error 400 Bad Request: Request Header or Cookie too Large Issue issue while trying to access a website or even your own website, we are here to help you. In this article, we have compiled different solutions and workarounds that will help you completely rid yourself of this error.

Bad Request Header or Cookie too Large Error

Bad Request Header or Cookie too Large Error

Make sure to follow all the solutions that have been listed in this article and also read through the reasons due to which it occurs in the first place. Basically, some Nginx web servers are set up in such a way that they might not accept cookies that are greater than a certain size.

What Causes the 400 Bad Request Request Header or Cookie too Large Error?

After going through the mentioned solutions that the users have told us, we have concluded the reasons due to which the error might be triggered.

  • Large Cookies: Sometimes, the cookies that you are trying to use with the website might be too large due to which the Bad Request Header or Cookie too large error might be triggered. Therefore, we suggest that you try and clear out the cookies in an attempt to fix the issue.
  • DNS Cache: The DNS settings that you have configured with your computer might be preventing it from being able to connect with certain websites or the DNS cache stored might have been corrupted. Therefore, we suggest that you try and flush out the DNS cache.
  • File Size: The File  Size that you are trying to upload might be larger than the upload limit of the website. Therefore, we suggest that you try and reduce the file size or try to upload a different file with a size smaller than the one that you are trying to upload.
  • Chrome Extensions: The extensions installed on your browser might be preventing the site from being accessed due to which the error is being triggered. Therefore, we suggest that you try and disable the extensions and then check to see if doing so fixes the error message.

Now that the reasons have been mentioned to you, you can finally start implementing the solutions and hopefully get rid of the error message on your PC.

Fixing the Bad Request Header or Cookie too Large Error:

Solution 1: Clear Cookies

This error can be instantly resolved by clearing cookies from your browser. Proceed with the steps listed below for clearing the cache in your respective browser:

Google Chrome:

  1. Launch Google Chrome and select the “Three Dots” on the top right side of the window.
  2. From the dropdown menu that appears, click on the “Settings” option.
  3. In the search bar type in “Site Settings” and open it.
    Clicking on "Site Settings"
    Clicking on “Site Settings”
  4. Navigate to “Content” and click on “Cookies and Site Data”.
  5. Afterwards, click on the “See all cookies and sites” option.
  6. Then click on “Remove All” to remove all of the cookies.
    Clicking on the "Remove All" button to fix Request Header or Cookie too Large error
    Clicking on the “Remove All” button
  7. Finally, proceed to “Restart” the Chrome browser.

Firefox:

  1. Open Firefox on your desktop PC and click on the “Open Application Menu” option in the top-right corner.
  2. From here select “Options” from the drop-down menu and next click on “Privacy & Security” from the right window pane.
    Clicking on "Options" in Firefox
    Clicking on “Options” in Firefox
  3. Next under the “History” section click on the “Clear History” option.
  4. Lastly “Restart” Firefox and check to see if the error got solved.

Microsoft Edge:

  1. Open Microsoft Edge on your PC and click on the “Three Dots” in the upper right corner of the window.
  2. Click on the “Settings” option on the top right side and from the left, select the “Privacy, Search, and Services” option.
  3. On the Right, select the “Choose what to clear” option and select it.
  4. Check the “Cookies and saved website data” option and next click on “Clear”.
    Clearing Microsoft Edge Cookies to fix Bad Request Header or Cookie too Large Error
    Clearing Microsoft Edge Cookies
  5. Lastly, “Restart” the browser and check to see if the error got fixed.

Opera:

  1. Click on the “Opera” icon in the upper left corner of the window.
  2. Select the “Preferences” from the drop-down menu.
  3. Then select “Privacy and Security” and navigate to “Cookies”.
    Clicking on the Privacy and Security option
    Clicking on the Privacy and Security option
  4. Go to “All cookies and website data” and delete all cookies by clicking the “Delete All” option.
  5. Finally, “Restart” the browser.

Safari:

  1. Click on the “Safari” icon on the top left-hand corner of the window.
  2. From the dropdown menu, navigate to “Preferences” and click on it.
  3. Select the “Privacy” tab and click on “Remove all website data” in cookies to delete all cookies.
    Selecting the Remove all Website Data option
    Selecting the Remove all Website Data option
  4. Then “Restart” your browser.

Solution 2: Add Base URL to Clear Cookies

  1. Open “Google Chrome” and click on three vertical dots on the top right corner of the window.
  2. A dropdown menu will appear up, from here click on “Settings”.
  3. In the search bar type “Site Settings” and click to open it.
    Selecting the "Site Settings" option
    Selecting the “Site Settings” option
  4. Click on the “Cookies and Site Data” option and scroll to the bottom.
  5. Click on “Add” which is next to the “Always Clear Cookies when Windows are Closed” option.
    Clicking on the "Add" option
    Clicking on the “Add” option
  6. Enter the base “Web Address”, e.g. youtube.com. (A base address is one that is without any path or an address that leads you to the front page of the website).
  7. Finally, click on “Add”.

Solution 3: Verify the Entered URL

Sometimes the URL you type is also wrong. A few common mistakes are misspelling the site name or entering the backward slashes. One easier way is to use the URL shortener if you have a long URL and try to copy-paste the URL instead of typing it manually to avoid any mistake. Once you have cross-checked your URL, try to access the page again. If you are still getting the error then try other methods like clearing cookies or disabling extensions.

Solution 4: Flush the DNS Cache

  1. Go to the “Start menu” and type “cmd” in the search bar. From the search results right-click on it and select “Run As Administrator”.
    Select Run As Administrator From The Command Prompt
    Select Run As Administrator From The Command Prompt
  2. Then type in the following command in the Command Prompt window and hit the “Enter” key:
    ipconfig /flushdns

    Flush DNS to fix Request Header or Cookie too Large error

    Flush DNS
  3. After executing this command now “Restart” your computer and run Steam again.

Solution 5: Compress the File Size

If you try to upload a file that is larger than the server limit, it is quite likely that you can face this error. You can check this by uploading a smaller file and if it uploads successfully then you might have to compress your file to avoid server limitation issues.

Solution 6: Wait Until the Server Is Being Fixed

This error can also occur due to server-side issues which are out of your control. It might be a server glitch or the server might be being updated. In such a scenario all you can do is to refresh the page and wait till servers are up again. Just refresh the page on a regular interval and check if the server has been fixed and the Header or Cookie too Large error is gone or not.

Solution 7: Disable Chrome Extensions

  1. Launch “Chrome” on your PC, and then click on the “Three vertical dots” in the top right of the window.
  2. From the drop-down menu click to select the “More Tools” option.
    More Tools
    More Tools
  3. Next click to select “Extensions” from the extended menu.
  4. Once inside the Extensions tab “Disable” all of the extensions one by one, if successful in removing the error you can try enabling the extensions one by one afterwards to find out the problematic one.

  1. Add the “large_client_header_buffers 4 16k” directive to the “HTTP” section of “/etc/nginx.conf file”.
  2. Then reload the Nginx process by entering the following command:
sudo nginx -t && sudo service nginx reload
  1. If this doesn’t work then double the value of the second parameter of the “large_client_header_buffers” directive and reload Nginx.
  2. Check to see if doing so fixes the Header or Cookie too Large error.

Solution 9: Use Direct Connection Mode With TCP

Convert the application to use the “Direct connection mode” with the Transmission Control Protocol or TCP. After doing this the issue would not arise because this direct connection mode with the TCP does not have a header size restriction like the HTTP protocol. Use the latest version of SDK that has a fix for query operations when the service interop isn’t available. You can learn more about it in .NET v3 or .NET v2 performance tips articles.

If you can’t go for the direct connection with the TCP then change the client consistency level to lighten the problem. The session token is only used for session consistency, other consistency levels do not use the session token.

Implement the above-indexed methods carefully in order to avoid getting the Header or Cookie too Large error in the future but if you still have any more questions in this regard then feel free to Contact Us here.

Photo of Alan Adams

Alan is a hardcore tech enthusiast that lives and breathes tech. When he is not indulged in playing the latest video games, he helps users with technical problems that they might run into. Alan is a Computer Science Graduate with a Masters in Data Science.

Добавить комментарий