精华内容
下载资源
问答
  • tomcat配置解决 RFC 7230 and RFC 3986
    2021-08-04 11:21:03

    tomcat服务器get请求400错误,RFC 7230 and RFC 3986 问题解决

    原因:get请求,里面包含了RFC 7230 and RFC 3986定义之外的特殊字符。
    RFC3986文档规定,Url中只允许包含以下四种:
    1、英文字母(a-zA-Z)
    2、数字(0-9)
    3、-_.~ 4个特殊字符
    4、所有保留字符,RFC3986中指定了以下字符为保留字符(英文字符):
    ! * ’ ( ) ; : @ & = + $ , / ? # [ ]
    解决:修改tomcat配置文件server.xml 允许请求中包含{ }[ ] 等字符

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;" redirectPort="8443" />
    
    更多相关内容
  • The valid characters are defined in RFC 7230 and RFC 3986 错误 问题出在 高版本的tomcat会对请求头进行过滤 我的项目使用的springboot版本是2.2.5版本, 内置的tomcat 版本是9.0.31。 解决方法①(推荐) 新增...
  • RFC 3986:2005 Uniform Resource Identifier (URI):Generic Syntax - 完整英文电子版(61页).txt.zip
  • 请注意,我们正在迁移到 GitHub:https://github.com/uriparser/uriparser uriparser 是一个严格符合 RFC 3986 的 URI 解析库,用 C89 编写。 uriparser 是跨平台的、快速的、支持 Unicode 并在新 BSD 许可下获得...
  • 1.情景展示 ... The valid characters are defined in RFC 7230 and RFC 3986  at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:283)  at org.a
  • 请注意,我们正在迁移到GitHub:https://github.com/uriparser/uriparser uriparser是一个严格的RFC 3986兼容URI解析库,用C89编写。 uriparser是跨平台的,快速的,支持Unicode的,并根据New BSD许可获得许可。 请...
  • uriparsers 实现,包括 URI 和 URI 引用。 目标 此 crate 的目标是提供用于有效创建、修改和解析 URI、相对引用和 URI 引用的类型。 下面分别介绍这三种类型。 什么是URI ? URI 代表统一资源标识符,用于标识...
  • RFC 3986 URI的结构

    2021-03-15 16:44:25
    mpeg dash 的element BaseURL语法规则遵循RFC 3986,需要做简单了解:I.1URI各个部分的名称foo://example.com:8042/over/there?name=ferret#nose\_/\______________/\_________/\_________/\__/||...

    mpeg dash 的element BaseURL语法规则遵循RFC 3986,需要做简单了解:

    I.1 URI各个部分的名称

    foo://example.com:8042/over/there?name=ferret#nose

    \_/   \______________/\_________/ \_________/ \__/

    |                   |                          |                     |             |

    scheme     authority                    path              query   fragment

    |   _________________________|__

    / \ /                                           \

    urn:example:animal:ferret:nose

    scheme:协议的名称,以字母开头,后接任意个字母/数字/+/-/.的组合。

    scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

    authority:以双斜线”//”开始但不包括”//”, 以紧接着的第一个’/’或者?或者#(#在这里

    叫着number sign)结束但不包括该符号,或者一直到URL结束为止。

    authority   = [ userinfo "@" ] host [ ":" port ]

    []内的部分是可选部分。

    path: 在authority之后,以/开头,以紧接着的第一个?或者#结束或者直到URL结束为止。

    query:以?开头,以紧接着的第一个#结束,或者直到URL结束为止,query常常以

    “key=value”的形式来携带一些认证信息。

    fragment: 以#开头,直到URL结束为止。Fragment常用于标记一个参考主要资源的次要

    资源。

    I.2 URI的参考规则

    URI-reference:URI-reference可能是URI或者relative-reference,当URI-reference的前缀不

    匹配scheme的语法时,表明URI-reference是一个relative-reference。

    Relative-reference所参考的URI叫target URI。

    在mpeg dash中,暂时只需要知道BaseURL可能需要参考上级的BaseURL来组合成一个完整的http链接即可,如下:

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns="urn:mpeg:DASH:schema:MPD:2011"

    xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd"

    type="static"

    mediaPresentationDuration="PT3256S"

    minBufferTime="PT1.2S"

    profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">

    http://cdn1.example.com/

    http://cdn2.example.com/

    subsegmentStartsWithSAP="1">

    7657412348.mp4

    3463646346.mp4

    访问两个MP4文件的HTTP URL需要组合MPD中的BaseURL和Representation中的BaseURL:

    或者

    展开全文
  • C# 符合RFC3986标准的urlencode 类/// /// Provides implementation of RFC3986 Percent Encoding mechanism./// public class RFC3986Encoder{/// /// Performs upper case percent encoding against the specified...

    C# 符合RFC3986标准的urlencode 类

    ///

    /// Provides implementation of RFC3986 Percent Encoding mechanism.

    ///

    public class RFC3986Encoder

    {

    ///

    /// Performs upper case percent encoding against the specified .

    ///

    /// The string to encode.

    /// Encode string.

    public static string Encode(string input)

    {

    if (string.IsNullOrEmpty(input))

    return input;

    StringBuilder newStr = new StringBuilder();

    foreach (var item in input)

    {

    if (IsReverseChar(item))

    {

    newStr.Append("%");

    var temp = ((int)item).ToString("X2");

    newStr.Append(temp);

    }

    else

    newStr.Append(item);

    }

    return newStr.ToString();

    }

    ///

    /// Performs lower case percent encoding (url-encodes) on the as what HttpUtility.UrlEncode does.

    ///

    /// The string to encode.

    /// Encode string.

    public static string UrlEncode(string input)

    {

    StringBuilder newBytes = new StringBuilder();

    var urf8Bytes = Encoding.UTF8.GetBytes(input);

    foreach (var item in urf8Bytes)

    {

    if (IsReverseChar((char)item))

    {

    newBytes.Append('%');

    newBytes.Append(ByteToHex(item));

    }

    else

    newBytes.Append((char)item);

    }

    return newBytes.ToString();

    }

    private static bool IsReverseChar(char c)

    {

    return !((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')

    || c == '-' || c == '_' || c == '.' || c == '~');

    }

    private static string ByteToHex(byte b)

    {

    return b.ToString("x2");

    }

    private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, 0);

    ///

    /// Gets the seconds from 1970/1/1.

    ///

    /// The time to calculate from.

    /// The seconds.

    public static int ToUnixTime(DateTime time)

    {

    return (int)(time.ToUniversalTime() - UnixEpoch).TotalSeconds;

    }

    }

    开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C# 符合RFC3986标准的urlencode 类!

    展开全文
  • The valid characters are defined in RFC 7230 and RFC 3986查了一下,是因为高版本tomcat中的新特性:严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了URL中只允许包含英文字母(...

    在用axios从前台向后台发请求时,后台报错

    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

    查了一下,是因为高版本tomcat中的新特性:严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了URL中只允许

    包含英文字母(a-z,A-Z)

    数字(0-9)

    -_.~4个特殊字符

    以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。

    而本例在传参时,在参数中传了一段JSON,传入的参数中有”{“,且有中文字符,均不在RFC3986中的保留字段中,所以会报这个错。

    解决方法:

    1、配置tomcat的catalina.properties

    添加或者修改:

    tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

    这种方法只适合对应的英文,如果含中文则就不行。如果有?和&这些符合那么

    tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}?&

    2、更换Tomcat版本,但是不建议,既然有这个规范就养成习惯去遵守。

    3、对相应参数编码后传输到后台再进行解码

    JS端,使用encodeURI()方法:

    param: encodeURI(something)

    Java端,使用URLDecoder.decode()方法解码:

    String temp = req.getParameter("param");

    temp= URLDecoder.decode(temp, "utf-8");

    如果你需要在服务器端加密,可用URLDecoder.encode(),与URLDecoder.decode()作用相反不再赘述。需要注意的是这两个java方法有两个参数,第二个参数是加密方法。不指定加密方式的写法已被废弃。

    2b90becf6e290b91b37c81fb17ef10ab.png

    展开全文
  • 基本的互联网通信协议都有在RFC文件内详细说明。...RFC7230:https://tools.ietf.org/html/rfc7230RFC3986:https://tools.ietf.org/html/rfc3986Tomcat解析的Java类:org.apache.tomcat.util.http.p...
  • 错误提示如下: [/servlet/..._m=save&_p0="3DB928067"&_p1="27"]. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.Http11InputBuffer.parseReque
  • (2)RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ] /** * 解决异常信息: * java.lang.IllegalArgumentException: * Invalid character found in the request target. The ...
  • %2522%257D&request_id=163279729816780262558651&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-51790407.pc_search_es_clickV2&utm_term=RFC3986&spm=1018.2226.3001...
  • RFC 7230 and RFC 3986 各版本tomcat解决方法

    千次阅读 热门讨论 2020-05-28 21:49:23
    项目从原先的jdk1.6+tomcat6 升级为jdk1.8+tomcat9... RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4种特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @...
  • The valid characters are defined in RFC 7230 and RFC 3986 解决方案
  • RFC 7230 and RFC 3986
  • 启动类加代码:之后重启即可 @Bean public ConfigurableServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory....
  • 将多个springcloud项目整合成一个单体的springboot工程,前端也换...The valid characters are defined in RFC 7230 and RFC 3986问题 报错日志: 09-Apr-2019 14:55:11.427 信息 [http-nio-8089-exec-8] org.apache
  • Is it correct to assume that everything that is not unreserved, can/should be percent-...RFC 3986说:“Under normal circumstances, the only time when octets within a URI are percent-encoded is durin...
  • 异常原因:url参数里面有特殊字符 Message Invalid character found in ... The valid characters are defined in RFC 7230 and RFC 3986 Description The server cannot or will not process the request du...
  • RFC3986文档规定,Url中只允许包含以下四种: 1、英文字母(a-zA-Z) 2、数字(0-9) 3、-_.~4个特殊字符 4、所有保留字符,RFC3986中指定了以下字符为保留字符(英文字符): ! * ' ( ) ; : @ & = + $ , / ? # [ ...
  • 有效字符在RFC 7230和RFC 3986中定义

    千次阅读 2020-09-02 14:57:23
    有效字符在RFC 7230和RFC 3986中定义 解决方案:找到apache-tomcat-7.0.105\conf\server.xml: <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 修改为:<...
  • 有效字符在RFC 7230和RFC 3986中定义。 今天在请求中发现了这个问题,发现是tomcat高版本严格按照RFC 3986规范解析地址。 该规范只允许包含 a-zA-Z 0-9 - _ . ~ 以及所有保留字符 ! * ’ ( ) ; : @ & = + $ , / ...
  • (PHP 4, PHP 5, PHP 7)rawurlencode – 按照 RFC 3986 对 URL 进行编码说明rawurlencode( string $str) : string根据 » RFC 3986 编码指定的字符。参数str要编码的 URL。返回值返回字符串,此字符串中除了-_.之外的...
  • tomcat 请求出现RFC 7230 and RFC3986的错误 问题出现:  tomcat由7.0.65升级到7.0.104后出现该问题  java.lang.IllegalArgumentException:在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义原因...
  • 日常开发中经常遇到一些莫名其妙的小问题,例如即将上线的项目在线上异常报错,但是在本地确可以... The valid characters are defined in RFC 7230 and RFC 3986, 这句话的大致意思就是说请求头中包含了 RFC 7230 an
  • 一. 问题描述 ... " " ^ " " ) "等特殊的字符控制台会输出类似错误 , t在omcat7.0.73及以上版本都会有这种问题。 二.... 创建一个配置类 ... public TomcatServletWebServerFactory tomcatServletWebServerFactory(){ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,300
精华内容 1,720
关键字:

rfc3986

友情链接: Aladdin_Diagnostics (1).zip