Сервер Apache Tomcat версії 9.0.70 зафіксував помилку із кодом HTTP Status 400 – Bad Request, що свідчить про невірний запит від клієнтської сторони. Тип помилки – Exception Report. Повідомлення серверу вказує на наявність недопустимого символу в цільовому URL запиту:
[/rumuna_zasudili_do_troh_rokiv_vyaznitsi_za_vvezennya_22_avto_yak_blagodiynoyi_dopomogi_n1614463″/ ]
Згідно з протоколами RFC 7230 та RFC 3986, допустимі символи мають суворі обмеження, і цей запит не відповідає цим вимогам. Опис проблеми полягає у тому, що сервер не може або відмовляється обробляти цей запит через помилки, які вважаються клієнтськими. До таких належать:
– Невірний синтаксис запиту;
– Неправильна структура повідомлення запиту;
– Обманливе або неправильне маршрутизування запиту.
Деталі винятку представлені у стек трейсі:
1. В основі помилки лежить виключення java.lang.IllegalArgumentException, яке свідчить про виявлення недопустимого символу у запиті.
2. Аналіз починається у класі org.apache.coyote.http11.Http11InputBuffer у методі parseRequestLine (рядок 502).
3. В обробці беруть участь такі компоненти:
– Http11Processor.service (рядок 271);
– AbstractProcessorLight.process (рядок 65);
– AbstractProtocol.ConnectionHandler.process (рядок 891);
– NioEndpoint.SocketProcessor.doRun (рядок 1784);
– SocketProcessorBase.run (рядок 49);
4. Роботу потоків забезпечують:
– ThreadPoolExecutor.runWorker (рядок 1191);
– ThreadPoolExecutor.Worker.run (рядок 659);
– TaskThread.WrappingRunnable.run (рядок 61);
– та власне java.lang.Thread.run (рядок 750).
Важливо зазначити, що повний стек викликів, що спричинив помилку, доступний у логах сервера. Це дозволяє технічним спеціалістам більш детально проаналізувати джерело проблеми і здійснити відповідні дії для усунення помилки.