后端:414 Request-URI Too Large解决方案
Web項目接口請求會出現414 Request-URI Too Large這個錯誤
? ? ? ? ? ? ? ? ? ? ? ?
下面給大家分享一下相關解決辦法:
一、get請求改為Post請求
如果你的web請求是get請求,可以考慮調整為post請求。
get請求:當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。
post請求:沒有限制。
二、調整前端請求參數的邏輯
比如你前臺調用后臺接口,需要批量操作,可能會傳遞一個數據集合對象json字符串,這樣參數的長度會大大增加。這個時候可以考慮只傳遞id組成的字符串,然后在后臺邏輯處理,根據id字符串查詢所需的數據,然后完成相應的編碼工作。
三、服務器配置調整
服務器配置調整是最有效的解決方式。服務器配置調整是全局性的,但要根據實際業務需求處理,不能隨意把參數長度調整很大,這樣也會對系統性能也會有很大的影響。服務器配置調整主要有nginx、tomcat、iis、apache等
3.1 Java項目
tomcat下server.xml文件修改內容:
<Connector?
port="8080"?
protocol="HTTP/1.1"? connectionTimeout="20000"?redirectPort="8443"?
maxHttpHeaderSize="65536"??URIEncoding="UTF-8" />
3.2 PHP項目:
在Apache的 httpd.conf 配置文件中直接追加以下參數:
LimitRequestLine 40940?
LimitRequestFieldSize 40940
3.3 ?Net項目
在web.config文件中的system.web配置節增加下面語句。
<httpRuntime targetFramework="4.5.1" requestValidationMode="2.0" maxRequestLength="1024000" executionTimeout= "3600" />maxRequestLength設置POST的長度大小。
3.4 nginx配置文件修改內容:
nginx.conf配置文件把這兩個緩存加大就行
#請求頭總長度大于512k時使用large_client_header_buffers設置的緩存區
client_header_buffer_size 512k;
#large_client_header_buffers 指令參數4為個數,512k為大小,默認是8k。申請4個512k。
large_client_header_buffers 4 512k;重啟nginx命令
刷新nginx服務
1、Linux服務器
進入nginx可執行目錄sbin下,輸入命令./nginx -s reload?即可
cd /usr/local/nginx/sbin/
./nginx -s reload
2、Windows服務器
nginx.exe -s reload
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識
總結
以上是生活随笔為你收集整理的后端:414 Request-URI Too Large解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [机器学习笔记]Note6--神经网络:
- 下一篇: 未能加载虚拟光盘VBoxGuestAdd