Saya mendapatkan di bawah tumpukan jejak ketika saya menggunakan aplikasi saya di lingkungan multi-server Apache Tomcat 8. Saya sering mendapatkan kesalahan ini, dan sepertinya ia memblokir utas kucing jantan:
INFO [http-nio-80-exec-4461] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1480)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Adakah yang bisa mengarahkan saya cara mengatasi masalah atau mempersempit pengecualian seperti itu? Saya tidak mendapatkan referensi ke file sumber aplikasi saya. Saya mencoba untuk google sekitar, dan di dalam tautan itu mengatakan, Anda mencoba mengakses url http melalui https, yang tampaknya tidak mungkin. Saya tidak mendapatkan kesalahan ini, ketika aplikasi berjalan pada instance Tomcat 8 tunggal. Saya mendapatkan ini hanya di lingkungan multi-server.
Saya juga membagikan tag meta yang saya lekatkan pada setiap halaman, jika itu membantu mengidentifikasi penyebabnya.
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
%>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1">
Saya juga menggunakan yang berikut ini di beberapa halaman, yang pada dasarnya sama dengan di atas:
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="private" />
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache" />
Bahkan jika ada yang membantu dalam memberikan arahan untuk upaya pemecahan masalah saya, itu akan berguna, karena saat ini saya tidak tahu, ke mana harus mencari.
Terima kasih sebelumnya.
sumber
Saya mendapat pengecualian yang sama ketika saya diuji secara lokal. Masalahnya adalah skema URL dalam permintaan saya.
Perubahan
https:// to http:// in your client url.
Mungkin ini membantu.
sumber
Anda memanggil server lokal dengan http : // localhost: 8080 / foo / bar. Sebut saja dengan https : // localhost: 8080 / foo / bar. Ini menyelesaikan masalah
sumber
Jika seseorang menggunakan kesombongan:
Ubah Skema ke
HTTP
atauHTTPS
, bergantung pada kebutuhan, sebelum melakukan eksekusi.Tukang pos:
Ubah Jalur URL ke
http://
atauhttps://
di alamat urlsumber
Saya menerima pengecualian ini yang tidak terkait dengan masalah TLS. Dalam kasus saya, nilai header Panjang Konten tidak cocok dengan panjang tubuh.
sumber
content-length
tajuk memecahkan masalah ini.Content-Length
tajuk memperbaiki penundaan.Menjawab pertanyaan lama ini (untuk orang lain yang mungkin membantu)
Mengkonfigurasi httpd conf Anda dengan benar akan membuat masalah terpecahkan. Instal server httpd apa pun, jika Anda tidak memilikinya.
Cantumkan konfigurasi saya di sini.
edit file seperti di atas dan kemudian restart httpd seperti di bawah ini
Dan kemudian permintaan dengan dengan
https
akan bekerja tanpa kecuali.Permintaan juga
http
akan diteruskan kehttps
! Jangan khawatir.sumber
Saya mendapatkan kesalahan ini diselesaikan dengan melakukan 2 hal di browser chrome:
Situs ini memiliki informasi ini dan opsi lain juga: https://www.thesslstore.com/blog/fix-err-ssl-protocol-error/
sumber
Saya tahu ini adalah utas lama, tetapi ada kasus khusus saat ini mungkin terjadi:
Jika Anda menggunakan gerbang api AWS yang digabungkan dengan tautan VPC, dan jika Network Load Balancer memiliki protokol proksi v2 diaktifkan, 400 Permintaan Buruk akan terjadi juga.
Butuh saya sepanjang sore untuk mencari tahu, jadi jika itu dapat membantu seseorang, saya akan senang :)
sumber
Saya mendapatkan pengecualian yang sama, setiap kali halaman dimuat,
Saya menemukan bahwa salah satu URL halaman saya adalah https alih-alih http, ketika saya mengubah yang sama, kesalahan telah hilang.
sumber
Ini biasanya terjadi ketika Anda menggunakan skema URI yang tidak didukung oleh server tempat aplikasi tersebut digunakan. Jadi, Anda mungkin ingin memeriksa semua skema yang didukung server Anda dan memodifikasi permintaan Anda
URI
, atau, Anda mungkin ingin menambahkan dukungan untuk skema itu di server Anda. Ruang lingkup aplikasi Anda akan membantu Anda memutuskan ini.sumber
Itu terjadi pada saya ketika saya memiliki port yang sama digunakan dalam ssh tunnel SOCKS untuk menjalankan Proxy di port 8080 dan server saya dan proxy browser firefox saya diatur ke port itu dan mendapatkan masalah ini.
sumber
Dalam kasus saya, saya harus menghapus riwayat browser / cookie untuk menghilangkan kesalahan ini.
sumber