Почему tomcat возвращает «400 Bad Request» при использовании URL, которые похожи на «thing.com-xyz » - PullRequest
0 голосов
/ 20 декабря 2018

Почему Tomcat версии 7.0.88 выдает код ошибки «400 Bad Request», если имя хоста оканчивается на xyx.com-abc.

Для целей тестирования предположим, что в файле hosts есть следующая запись

127.0.0.1 hello.hello.hello-erq

И мы пытаемся получить доступ к этому URL из curl

curl -v hello.hello.hello-er: 8080

Мы получаем следующий вывод

* Rebuilt URL to: hello.hello.hello-er:8080/
*   Trying 127.0.0.1...
* Connected to hello.hello.hello-er (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: hello.hello.hello-er:8080
> User-Agent: curl/7.49.0
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Server: Apache-Coyote/1.1
< Transfer-Encoding: chunked
< Date: Thu, 20 Dec 2018 19:53:09 GMT
< Connection: close
<
* Closing connection 0

При использовании localhost в URL получаем

 C:\playground\apache-tomcat-7.0.88-windows-x64\apache-tomcat-7.0.88\bin>curl -v localhost:8080
* Rebuilt URL to: localhost:8080/
*   Trying ::1...
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.49.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Type: text/html;charset=ISO-8859-1
< Transfer-Encoding: chunked
< Date: Thu, 20 Dec 2018 20:00:07 GMT
<

<!DOCTYPE html>

ВсеКонфигурации tomcat одинаковы для обоих тестов, и одна и та же проблема реплицируется на ванильный сервер tomcat.

Я пытался повторить ту же проблему на tomcat-8, но оба URL-адреса работали там нормально.Как я могу копать глубже и выяснить причину этой проблемы в 7.0.88?

Есть ли какие-нибудь дополнительные журналы, которые я могу включить, чтобы получить больше информации по этому вопросу?

Или единственное, что мне осталось, это выдернуть свои волосы и обновить?

1 Ответ

0 голосов
/ 22 декабря 2018

Tomcat пытался принудительно применить спецификацию доменного имени , отказав вашему имени хоста с дефисом в TLD.Это считалось ошибкой в ​​Tomcat и исправлено в 7.0.89 (и версии Tomcat 8.0.x, 8.5.x и 9.0.x выпущены примерно в то же время) .

Так чтокажется, что все, что вам нужно, это небольшая версия удар.

...