The valid characters are defined in RFC 7230 and RFC 3986錯誤解決方式

前言

網(wǎng)上有很多關于tomcat版本過高導致的協(xié)議問題的解決方式,但是jar版本(例如spring boot內置的)的很少,特此總結了一下,如果只想看spring boot的解決方式,跳到最后一行

RFC 3986規(guī)范

1.RFC 3986文檔規(guī)定阳谍,Url中只允許包含英文字母(a-z,A-Z)、數(shù)字(0-9)杨帽、- _ . ~ 4個特殊字符以及所有保留字符萝风。
2.RFC3986中指定了以下字符為保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]

不安全字符

還有一些字符才避,當他們直接放在Url中的時候喷楣,可能會引起解析程序的歧義汰聋。這些字符被視為不安全字符无埃,原因有很多徙瓶。

空格,Url在傳輸?shù)倪^程嫉称,或者用戶在排版的過程侦镇,或者文本處理程序在處理Url的過程,都有可能引入無關緊要的空格织阅,或者將那些有意義的空格給去掉
<>引號和尖括號通常用于在普通文本中起到分隔Url的作用
# 通常用于表示書簽或者錨點
% 百分號本身用作對不安全字符進行編碼時使用的特殊字符壳繁,因此本身需要編碼
{ } | \ ^ [ ]` ~ 某一些網(wǎng)關或者傳輸代理會篡改這些字符

解決方式

轉義

將請求值URL編碼(但是spring boot默認只會URL解碼一次,二次解碼需要另行添加)

更換版本

更換Tomcat為較低版本(提示:同樣的問題也存在于 >=8.0.39和>=9.0.0.M12)

使用POST

使用POST提交數(shù)據(jù)內容(body中)

修改配置

1.tomcat解壓版/安裝版

1.~/conf/catalina.properties中,找到最后注釋掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow選項,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}荔棉,選項是按照字符分隔為一個數(shù)組,表示放行["|","{","}"]
2.或者你可以在~/conf/catalina.properties最后一行添加org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

2.內置版(spring boot等內置的tomcat)

在啟動時加入tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
實例:# java -jar -Dtomcat.util.http.parser.HttpParser.requestTargetAllow=|{} demo-0.0.1-SNAPSHOT.jar

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末闹炉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子润樱,更是在濱河造成了極大的恐慌渣触,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壹若,死亡現(xiàn)場離奇詭異嗅钻,居然都是意外死亡皂冰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門养篓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灼擂,“玉大人,你說我怎么就攤上這事觉至√抻Γ” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵语御,是天一觀的道長峻贮。 經(jīng)常有香客問我,道長应闯,這世上最難降的妖魔是什么纤控? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮碉纺,結果婚禮上船万,老公的妹妹穿的比我還像新娘。我一直安慰自己骨田,他們只是感情好耿导,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著态贤,像睡著了一般舱呻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悠汽,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天箱吕,我揣著相機與錄音,去河邊找鬼柿冲。 笑死茬高,一個胖子當著我的面吹牛,可吹牛的內容都是我干的假抄。 我是一名探鬼主播怎栽,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼慨亲!你這毒婦竟也來了婚瓜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤刑棵,失蹤者是張志新(化名)和其女友劉穎巴刻,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛉签,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡胡陪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年沥寥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柠座。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡邑雅,死狀恐怖,靈堂內的尸體忽然破棺而出妈经,到底是詐尸還是另有隱情淮野,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布吹泡,位于F島的核電站骤星,受9級特大地震影響,放射性物質發(fā)生泄漏爆哑。R本人自食惡果不足惜洞难,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揭朝。 院中可真熱鬧队贱,春花似錦、人聲如沸潭袱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敌卓。三九已至慎式,卻和暖如春伶氢,著一層夾襖步出監(jiān)牢的瞬間趟径,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工癣防, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜗巧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓蕾盯,卻偏偏與公主長得像幕屹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子级遭,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理望拖,服務發(fā)現(xiàn),斷路器挫鸽,智...
    卡卡羅2017閱讀 134,626評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,771評論 6 342
  • 本文參考了:http://blog.didispace.com/springcloud7/http://blog....
    WeiminSun閱讀 7,188評論 0 23
  • 1. Java基礎部分 基礎部分的順序:基本語法说敏,類相關的語法,內部類的語法丢郊,繼承相關的語法盔沫,異常的語法医咨,線程的語...
    子非魚_t_閱讀 31,596評論 18 399
  • 單例模式理解 單例模式是指確保對于一個給定的類只有一個實例存在,這個實例有一個全局唯一的訪問點架诞。它通常采用懶加載的...
    攪局者閱讀 3,242評論 2 9