解決Springboot get請(qǐng)求是參數(shù)過(guò)長(zhǎng)的情況
問(wèn)題原因
Springboot get請(qǐng)求是參數(shù)過(guò)長(zhǎng)拋出異常:Request header is too large 的問(wèn)題
錯(cuò)誤描述
java.lang.IllegalArgumentException: Request header is too large
解決方案
請(qǐng)求頭超過(guò)了tomcat的限值。本來(lái)post請(qǐng)求是沒(méi)有參數(shù)大小限制,但是服務(wù)器有自己的默認(rèn)大小。
設(shè)置服務(wù)器大?。?/strong>
1.普通tomcat
在server.xml中
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="0" maxHttpHeaderSize ="102400"/>
處加上
maxHttpHeaderSize =”102400”
2.SpringBoot
SpringBoot項(xiàng)目更方便了,在application.properties文件中添加
#請(qǐng)求參數(shù)過(guò)長(zhǎng)設(shè)置
server.max-http-header-size=102400
補(bǔ)充知識(shí):JavaWeb - URL 中很長(zhǎng)的一串請(qǐng)求參數(shù),為什么不采用 POST 方式?
GET 方法
請(qǐng)注意,查詢字符串(名稱/值對(duì))是在 GET 請(qǐng)求的 URL 中發(fā)送的:
/test/demo_form.asp?name1=value1&name2=value2
有關(guān) GET 請(qǐng)求的其他一些注釋:
GET 請(qǐng)求可被緩存
GET 請(qǐng)求保留在瀏覽器歷史記錄中
GET 請(qǐng)求可被收藏為書(shū)簽
GET 請(qǐng)求不應(yīng)在處理敏感數(shù)據(jù)時(shí)使用
GET 請(qǐng)求有長(zhǎng)度限制
GET 請(qǐng)求只應(yīng)當(dāng)用于取回?cái)?shù)據(jù)
POST 方法
請(qǐng)注意,查詢字符串(名稱/值對(duì))是在 POST 請(qǐng)求的 HTTP 消息主體中發(fā)送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有關(guān) POST 請(qǐng)求的其他一些注釋:
POST 請(qǐng)求不會(huì)被緩存
POST 請(qǐng)求不會(huì)保留在瀏覽器歷史記錄中
POST 不能被收藏為書(shū)簽
POST 請(qǐng)求對(duì)數(shù)據(jù)長(zhǎng)度沒(méi)有要求
小雷FansUnion
get方式,是瀏覽器默認(rèn)方式,訪問(wèn)簡(jiǎn)單,比如點(diǎn)擊一個(gè)鏈接,直接就跳轉(zhuǎn)了。
如果用post,還需要構(gòu)造表單,程序?qū)崿F(xiàn)麻煩,用戶體驗(yàn)還會(huì)收到“不能重復(fù)提交表單”等提示,麻煩很多。
get方式,用戶直接看到url和參數(shù),復(fù)制粘貼,可以方便收藏、轉(zhuǎn)發(fā),而post不行。
網(wǎng)友看法 - 方騰飛
這個(gè)原因很多。在很多場(chǎng)景下,用GET實(shí)現(xiàn)起來(lái)更簡(jiǎn)單,也足夠了,比如并發(fā)網(wǎng)給其他網(wǎng)站引流需要加些參數(shù),這樣方便其他網(wǎng)站統(tǒng)計(jì)流量來(lái)源,如果用POST,并發(fā)網(wǎng)就的做一個(gè)Post提交,會(huì)比較麻煩。
割眼看世界
瀏覽器地址欄打開(kāi)的默認(rèn)就是GET,所以鏈接用GET很方便。
POST的提交需要表單或js提交,麻煩。
GET可以使用緩存。
GET有利于SEO。
華仔的逆襲
Get方式的簡(jiǎn)潔和緩存比較能說(shuō)服我。
以上這篇解決Springboot get請(qǐng)求是參數(shù)過(guò)長(zhǎng)的情況就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Springboot GET和POST請(qǐng)求參數(shù)獲取方式小結(jié)
- Springboot中攔截GET請(qǐng)求獲取請(qǐng)求參數(shù)驗(yàn)證合法性核心方法
- springboot如何接收get和post請(qǐng)求參數(shù)
- SpringBoot如何獲取Get請(qǐng)求參數(shù)詳解
- springboot中Getmapping獲取參數(shù)的實(shí)現(xiàn)方式
- SpringBoot用實(shí)體接收Get請(qǐng)求傳遞過(guò)來(lái)的多個(gè)參數(shù)的兩種方式
- SpringBoot常見(jiàn)get/post請(qǐng)求參數(shù)處理、參數(shù)注解校驗(yàn)及參數(shù)自定義注解校驗(yàn)詳解
- Springboot接收Get參數(shù)實(shí)踐過(guò)程
相關(guān)文章
利用Java寫一個(gè)學(xué)生管理系統(tǒng)
今天這篇文章就給給大家分享利用Java寫一個(gè)學(xué)生管理系統(tǒng)吧,先寫一個(gè)簡(jiǎn)單的用List來(lái)實(shí)現(xiàn)學(xué)生管理系統(tǒng):2021-09-09
SpringBoot如何基于POI-tl和word模板導(dǎo)出龐大的Word文件
這篇文章主要介紹了SpringBoot如何基于POI-tl和word模板導(dǎo)出龐大的Word文件,poi-tl是一個(gè)基于Apache?POI的Word模板引擎,也是一個(gè)免費(fèi)開(kāi)源的Java類庫(kù)2022-08-08
解讀Spring定義Bean的兩種方式:<bean>和@Bean
這篇文章主要介紹了Spring定義Bean的兩種方式:<bean>和@Bean,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

