У меня есть тест по каратэ, который отправляет POST, а затем отправляет обратно перенаправление на фиктивный адрес. С недавним обновлением Spring я теперь вижу перенаправление, возвращающееся как 303
, а не 302
.
. Я не хочу, чтобы этот 302
URL сопровождался запросом. Тест только подтвердил, что мы получили 302
назад, и продолжил проверку. Это то, что я видел до весеннего обновления. Однако с возвращенным 303
за ним следует запрос GET
к фиктивному URL, который затем завершается ошибкой с UnknownHostException
. Я думаю, возможно, из-за присутствия Expires: 0
в заголовках 302
. 303 не содержит этот заголовок (или Pragma: no-cache
, но я не вижу, как это повлияет на него). Ниже приведены заголовки ответов для каждого с различиями, выделенными *
302
5 < 302
* 5 < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
5 < Connection: keep-alive
5 < Content-Language: en-US
5 < Content-Length: 0
5 < Date: Mon, 16 Mar 2020 12:04:55 GMT
* 5 < Expires: 0
5 < Location: http://anywhere?key=value&code=iXAnzC
* 5 < Pragma: no-cache
5 < Server: nginx/1.17.9
5 < X-Content-Type-Options: nosniff
5 < X-Frame-Options: DENY
5 < X-XSS-Protection: 1; mode=block
303
5 < 303
5 < Cache-Control: no-store
5 < Connection: keep-alive
5 < Content-Language: en-US
5 < Content-Length: 0
5 < Date: Fri, 13 Mar 2020 11:06:31 GMT
5 < Location: http://anywhere?key=value&code=05O7lL
5 < Server: nginx/1.17.9
5 < X-Content-Type-Options: nosniff
5 < X-Frame-Options: DENY
5 < X-XSS-Protection: 1; mode=block
Мы явно не устанавливаем эти заголовки, поэтому это будет поведение Tomcat / NGinx, что означает, что оно будет стандартным на многих серверах. Это обычно ожидаемое поведение с 303
или это связано с различиями в заголовках?