1. 程式人生 > >Get請求攜帶資料量的各種限制及解決辦法

Get請求攜帶資料量的各種限制及解決辦法

正好在看請求資料量大時要怎麼處理,找到了這篇文章~

到新公司處理的第一個線上問題是某個商品頁,在某個人機器上訪問失敗,nginx返回400錯誤,但其它人機器上沒有問題,即使用虛擬機器重建了出問題機器的軟硬體環境也不會出問題。

經過對出問題機器的http請求進行抓包,發現URL超長,cookie也很大,然後問題就很清楚了,因為大部分人用的是IE瀏覽器,IE瀏覽器限制了URL長度,做了自動截斷處理,所以總的http header不會超出nginx的限制,可以正常返回,而使用同樣瀏覽器,不限制URL長度,但cookie長度較短,沒超過nginx的header緩衝區限制,也不會造成400錯誤。

解決辦法就是修改nginx、tomcat等使用到的應用伺服器,讓他們支援更大的header緩衝區。當然從相容性等方面的考慮,根本解決辦法是不要通過GET方式傳遞超長的引數。

==================下邊列出了各個瀏覽器的限制和處理辦法=========================

附:各瀏覽器對URL的長度限制(單位:字元個數)
IE : 2803
Firefox:65536
Chrome:8182
Safari:80000
Opera:190000


附:各瀏覽器允許域下的最大cookie數目
IE :原先為20個,後來升級為50個
Firefox: 50個
Opera:30個
Chrome:180個
Safari:無限制


附:瀏覽器所允許的每個Cookie的最大長度
 
Firefox和Safari:4079位元組
Opera:4096位元組
IE:4095位元組


附:各應用伺服器設定header頭部的引數

nginx:client_header_buffer_size和large_client_header_buffers  tomcat:maxHttpHeaderSize

相關推薦

Get請求攜帶料量各種限制解決辦法

正好在看請求資料量大時要怎麼處理,找到了這篇文章~ 到新公司處理的第一個線上問題是某個商品頁,在某個人機器上訪問失敗,nginx返回400錯誤,但其它人機器上沒有問題,即使用虛擬機器重建了出問題機器的軟硬體環境也不會出問題。 經過對出問題機器的http請求進行抓包,發現U

linux shell curl get 請求頭 和多引數問題解決

1、請求頭Authorization 在curl 中新增請求頭資訊,需要用-H ,並且用“請求頭屬性:屬性值”的格式,如 curl -H "Authorization:Basic MTIzNA=="  http://www.aaaa.com 2、curl的get方式,請求

Python安裝tesserocr遇到的各種問題解決辦法

Tesseract的安裝及配置 在Python爬蟲過程中,難免遇到各種各樣的驗證碼問題,最簡單的就是​這種驗證碼了,那麼在遇到驗證碼的時候該怎麼辦呢?我們就需要OCR技術了,OCR-即Optical Character Recognition光學字元識別,是指通過掃描字元,然後將其形狀翻譯成電子文字的過程。

安裝mysql-8.0.13-winx64,出現的各種問題解決辦法。(修改密碼,caching-sha2-password,mysqld:error等)

 1.安裝mysql-8.0.13-winx64,出現如下錯誤: 原因:my.ini檔案格式是utf-8 解決辦法,my.ini檔案儲存為ANSI格式檔案    2.當在執行命令:mysqld --initialize --console時,

關於java連線sql server 2008遇到的各種問題解決辦法

解決java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver問題                學習java連線sql server 2008資料庫時候,遇到java.lang

win10遇到的各種問題解決辦法

win10解除安裝所有自帶應用,某些無法解除安裝 get-appxpackage | remove-appxpackage win10解除安裝和安裝應用商店 Get-AppxPackage *WindowsStore* | Remove-AppxPacka

maven 打war包出現各種問題解決辦法

maven打war包步驟:1.右鍵專案選擇Run as或者Debug as後maven clean1.右鍵專案選擇Run as或者Debug as後maven installmaven打war包過程中出現錯誤(編譯不通過):一.符號找不到,不存在(編譯不通過)    Mave

請求料量介面時手動分頁

前段時間做專案遇到這麼種情況,需要呼叫一個批量查詢介面,GET請求的 ,比如根據使用者id批量查詢使用者資訊的,介面提供方提供的就是GET請求的,然而我們一次要查詢幾萬個使用者,這樣請求的結果就是介面直接掛掉,因為GET請求沒法傳遞那麼多資料,最後的解決方案是人為地進行分頁

利用SSH框架開發時遇到的各種Bug解決方法

for manage unmap 獲取 extension cfg.xml request rem soci 1、hibernate自動生成的配置文件 hibernate.cfg.xml 有時候是有問題的,會出現 org.hibernate.HibernateExcept

Laravel ajax請求419錯誤解決辦法(CSRF驗證) 阿星小棧

detail meta csdn div content pre bsp setup rip ajax請求報419 unknown status 解決辦法1:將這個接口放到api路由上,這樣可以跳過CSRF的檢查 解決辦法2: 1.在頁面上添加 <meta nam

flume蒐集料到hadoop HA可能出現的問題解決辦法

把Hadoop叢集的hdfs-site.xml、core-site.xml兩個配置檔案複製到 flume安裝目錄的conf目錄去,把hadoop-hdfs-2.7.1.jar複製到 Flume  lib目錄。 ERROR - org.apache.flume.sink.hdfs.H

Android中get請求的Url包含中文引數的解決方案

後臺伺服器使用tomcat7。Android傳送get請求時報錯: 錯誤資訊:九月 13, 2018 8:51:40 上午 org.apache.coyote.http11.AbstractHttp1

PHP使用curl請求https站點的常見錯誤解決方案

使用curl請求http站點和https站點最大的不同就是https站點有證書驗證這一環節,如果證書驗證不通過則無法發起請求,不管是請求什麼型別的站點遇到問題時先把錯誤碼打印出來看一下,列印錯誤碼的程式碼片段如下: $error = curl_errno($ch); //其

SSH框架整合整合mongodb時候遇到的各種錯誤分析解決辦法

一、首先要注意的就是整合mongodb 由於SSH框架大部分是老專案,使用的Spring框架都是低版本的,低版本的spring不支撐mongodb,因此,在整合之前就是要先升級專案中的Spring框架,我的Spring是1.0的,乘著這次機會我把它升級到4.2版

jmeter錄製帶中文的get請求回放會報錯如何解決

在一次專案中,用jmeter代理方式錄製(通過Chrome谷歌瀏覽器)完指令碼,然後在回放中,發現帶漢字的get請求會報錯,具體報錯原因如下所示: 原因是本次系統頁面用谷歌瀏覽器代理錄製的指令碼中(另外網上也提到IE和Firefox對於中文路徑都是以UTF-8編碼並帶%號傳送,IE和Fir

GET請求中的亂碼原理解析和解決方案

2. 亂碼問題解決 基礎知識 1)瀏覽器會在中文的UTF-8後加上上%得到URL編碼   例如: %e8%b4%b9%e7%94%a8%e6%8a%a5%e9%94%80 2)以get的請求傳送到tomcat伺服器後又會以預設的(ISO8859-1)解碼!! 3)所以在a

關於VNC遠端登入ubuntu的各種問題解決方法

使用gnome-session-fallback桌面 apt-get install gnome-session-fallback 然後編輯 .vnc/xstartup 檔案(前提是使用 TightVNC 而不是 X11VNC) 註釋掉  gnome-session &,加一行 gnome

Python 標準庫和第三方庫的安裝位置 Python 第三方庫安裝的各種問題解決

首先使用 sys 下的 path 變數檢視所有的 python 路徑: import sys sys.path 1 2 標準庫 lib 目錄下(home 目錄/pythonXX.XX/lib) 第三方庫

關於ajax中出現2次請求的原因解決辦法

前言 在專案中發現ajax中出現兩次請求,OPTIONS請求和POST請求,由於在上傳資料的時候,後臺可能2次都有反應,因此會造成資料上的錯誤。 1,具體表現如下: 查詢原因是瀏覽器對簡單跨域請求和複雜跨域請求的處理區別。 2,原因如下:  瀏覽器對複雜跨域請求的處理

造成javax.servlet.ServletException: Could not resolve view with name的各種原因解決方法

報錯完成資訊: javax.servlet.ServletException: Could not resolve view with name '/lose/index' in servlet with name 'SpringMVC' 注:藍色部分根據你的實際情況