首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏企鹅号快讯

    HTTP协议简介

    URI-reference = URI-reference, see [RFC3986], Section 4.1 absolute-URI = absolute-URI, see [RFC3986] RFC3986], Section 3.1 authority = authority, see [RFC3986], Section 3.2 uri-host = host, see [RFC3986], Section 3.2.2 port = port, see [RFC3986], Section 3.2.3 path-abempty = path-abempty , see [RFC3986], Section 3.3 segment = segment, see [RFC3986], Section 3.3 query = query , see [RFC3986], Section 3.4 fragment = fragment, see [RFC3986], Section 3.5 比如 port 一节,就说表示端口应该用

    89800发布于 2017-12-28
  • 别再手写 URL 解析器了:PHP 8.5 URI 扩展让 URL 处理更安全、更干净

    URI扩展的概念:URI对象+两套标准PHP8.5的URI扩展提供两个主要类:Uri\Rfc3986\Uri(RFC3986合规,严格URI规则)Uri\WhatWg\Url(WHATWGURL合规,浏览器风格的 创建和解析URI:从字符串到组件最简单的情况:解析一个HTTPURL并访问各部分RFC3986:展开代码语言:PHPAI代码解释useUri<spanclass="hljs-title">Rfc3986 RFC3986给你两种表示:原始vs规范化解码对于大多数组件,Uri\Rfc3986\Uri暴露:raw:解析器给出的形式(最接近原始输入)规范化解码:规范化+百分号解码,意在成为规范形式且可往返转换RFC 如果确实需要对path段进行RFC3986原始编码,PHP的rawurlencode()遵循RFC3986规则。 RFC3986验证:严格URI解析+规范化选项如果你在验证通用URI(不只是HTTPURL),或者你关心rawvs规范化解码的表示,Uri\Rfc3986\Uri是个好选择。

    14200编辑于 2026-01-17
  • 来自专栏黄Java的地盘

    [翻译]WebSocket协议第三章——WebSocket URIs

    WebSocket URIs(第三章协议正文) 这个规范使用在RFC5234中的ABNF语法以及URI规范中的RFC3986的术语和ABNF产品定义了两套方案。 query ] host = <host, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.2.2), 3.2.2 节> port = <port, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.2.3), 3.2.3节> path = <path-abempty, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.3), 3.3节> query = <query, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.4), 3.4节> 端口字段是可选的,默认的"ws

    91920发布于 2018-09-18
  • 来自专栏快乐阿超

    escape、unescape废弃

    . // 注意,尽管 RFC3986 保留 "!",但 RFC5987 并没有 // 所以我们并不需要过滤它。 以下是上述功能的替换方案 function encodeRFC5987ValueChars2(str) { return encodeURIComponent(str). // 注意,尽管 RFC3986

    1.9K10编辑于 2022-08-21
  • 来自专栏WebJ2EE

    URI、URL、URN、IRI,你分得清吗?

    摘录一波官方文档(rfc3986)中的重点 3. URI、URL、URN 3.1. 摘录一波官方文档(rfc3305)中的重点 4. IRI 4.1. 摘录一波官方文档(rfc3986)中的重点 1. Overview and Motivation A Uniform Resource Identifier (URI) is defined in [RFC3986] as a sequence of Summary of IRI Syntax IRIs are defined similarly to URIs in [RFC3986], but the class of unreserved characters Otherwise, the syntax and use of components and reserved characters is the same as that in [RFC3986].

    1.8K20发布于 2021-10-14
  • 来自专栏前端

    Base64编码的“暗坑”:解密失败?可能是这些原因!

    由于种种历史原因,RFC与W3C都定义过URL的编码标准RFC规范在RFC3986中提到:除了 数字 、 字母 、-_.~ 不会被转义,其他字符都会被以百分号(%)后跟两位十六进制数 %{hex} 的方式进行转义 url=https%3A%2F%2Fwww.baidu.com结论对于JS的编码方法来说,只有encodeURIComponent会对+进行编码,并且编码规范是RFC3986,也就是说使用这个方法空格会被转为 这是因为javascript遵循的是RFC3986规范,但java好像并不是java自带的decode方法底层是这样实现的这里是按W3C的规范,由于URL中不能存在空格,所以URL Encode 会把空格替换成 真相了....解决方案按理来说我们只需要保证传给后端的+字符按RFC3986规范编码成了%2B就不会有问题,不要把编码的机会留给浏览器,在JS中只需调用encodeURIComponent即可后端接收到带空格的

    83610编辑于 2025-05-19
  • 来自专栏后端码事

    websocket protocal

    query ] host = <host, defined in [RFC3986], Section 3.2.2> port = <port, defined in [RFC3986], Section 3.2.3> path = <path-abempty, defined in [RFC3986], Section 3.3> query = <query, defined in [RFC3986]

    1.8K30发布于 2020-09-11
  • 来自专栏码农小胖哥的码农生涯

    Spring MVC中的@RequestParam注解的使用指南

    URI编码 RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。 RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ] 两种注解的编码问题 我们可以根据上两种注解来分别执行两个示例。

    16.1K20发布于 2019-12-05
  • 来自专栏黄Java的地盘

    【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)

    URI 协议名称 ws 状态 永久 URI 协议语法 使用 ABNF (RFC5234)语法和来自 URI 规范 RFC3986 的 ABNF 终端: "ws:" "//" authority path-abempty query ] path-abempty 和 query RFC3986 部分组成了发送给服务端的资源名称,来标记需要的服务类型。其他的部分在 RFC3986 中定义了含义。 URI 协议名称 wss 状态 永久 URI 协议语法 使用 ABNF (RFC5234)语法和来自 URI 规范 RFC3986 的 ABNF 终端: "wss:" "//" authority path-abempty query ] path-abempty 和 query RFC3986 部分组成了发送给服务端的资源名称,来标记需要的服务类型。其他的部分在 RFC3986 中定义了含义。

    1.1K30发布于 2019-03-13
  • 来自专栏全栈程序员必看

    IE访问页面400报错,其他浏览器可正常访问

    在高版本中增加的安全验证,凡是RFC 3986中非URL可携带的字符,都会返回400错误 涉及到的TOMCAT版本 7.0.69+ 8.0.39+ 8.5.7 附 RFC 3986文档关于特殊字符的定义 RFC3986 RFC3986中指定了以下字符为保留字符: ! * ‘ ( ) ; : @ & = + $ , / ?

    1.6K20编辑于 2022-09-05
  • 来自专栏技术探索

    Tomcat特殊字符报400(The valid characters are defined in RFC 7230 and RFC 3986)

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

    4K40发布于 2019-05-14
  • 来自专栏小樱的经验随笔

    Javascript中的url编码与解码(详解)

    哪些字符需要编码 RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。 RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。 RFC3986中指定了以下字符为保留字符: ! * ' ( ) ; : @ & = + $ , / ? # [ ] 不安全字符 还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。 例如对于~符号,虽然RFC3986文档规定,对于波浪符号~,不需要进行Url编码,但是还是有很多老的网关或者传输代理会 如何对Url中的非法字符进行编码 Url编码通常也被称为百分号编码(Url Encoding

    4.6K90发布于 2018-04-17
  • 来自专栏Golang语言社区

    Web开发须知:URL编码与解码

    | | | scheme authority path query fragme 哪些字符需要编码   RFC3986 RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相 应的解释。    RFC3986中指定了以下字符为保留字符:! * ' ( ) ; : @ & = + $ , / ? # [ ]   不安全字符:还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。 例如对于~符号,虽然RFC3986文档规定,对于波浪符号~,不需要进行Url编码,但是还是有很多老的网关或者传输代理会进行编码。   

    3.4K30发布于 2018-03-27
  • 来自专栏编程语言xuetang

    Servlet下载服务器上的文件Demo

    .~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]) 解决方案 ...

    3.3K30发布于 2019-09-25
  • 来自专栏Java研发军团

    为什么要进行URL编码!!!

    | | | scheme authority path query fragment 哪些字符需要编码 RFC3986 RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。 RFC3986中指定了以下字符为保留字符:! * ' ( ) ; : @ & = + $ , / ? # [ ] 不安全字符:还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。 例如对于~符号,虽然RFC3986文档规定,对于波浪符号~,不需要进行Url编码,但是还是有很多老的网关或者传输代理会进行编码。

    7.3K40发布于 2019-06-05
  • 来自专栏公众号:懒时小窝

    N、《图解HTTP》读书笔记 - 附录

    1190000040631005资料5:有关HTTP的发展史参考https://www.cnblogs.com/songyao666/p/16065502.htmlN14.1、其他参考协议(原书第一章)RFC3986 请参考RFC3986RFC3986中文对照翻译:RFC3986中文对照翻译RFC3986协议原文:https://www.rfc-editor.org/rfc/rfc3986.htmlIANA - Uniform

    85910编辑于 2022-08-12
  • 来自专栏玩转JavaEE

    请求地址最后面的 “/” 加和不加到底有什么区别?

    按照 RFC3986 的说法,一个 URI 可以被进一步归类为一个定位器(URL),一个名字(URN),或两者都是。 在 RFC3986 文档中还有如下一句话: "Future specifications and related documentation should use the general term

    1.6K50发布于 2019-08-06
  • 来自专栏程序那些事

    netty系列之:搭建HTTP上传文件服务器

    encoderMode是编码的模式,目前有三种编码模式,分别是RFC1738,RFC3986和HTML5。 默认情况下的编码模式是RFC1738,这也是大多数form提交数据的编码方式。 但是它并不适用于OAUTH,如果要使用OAUTH的话,则可以使用RFC3986。HTML5禁用了multipart/form-data的混合模式。 最后,我们讲讲HttpDataFactory。

    2.7K30发布于 2021-09-06
  • 来自专栏Java技术栈

    为什么要进行 URL 编码???

    | | | scheme authority path query fragment 哪些字符需要编码 RFC3986 RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。 RFC3986中指定了以下字符为保留字符:! * ' ( ) ; : @ & = + $ , / ? # [ ] 不安全字符:还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。 例如对于~符号,虽然RFC3986文档规定,对于波浪符号~,不需要进行Url编码,但是还是有很多老的网关或者传输代理会进行编码。

    1.5K20发布于 2019-07-08
  • 来自专栏java思维导图

    刨根问底 HTTP 和 WebSocket 协议(下)

    query ] host = <host, defined in [RFC3986], Section 3.2.2> port = <port, defined in [RFC3986], Section 3.2.3> path = <path-abempty, defined in [RFC3986], Section 3.3> query = <query, defined in [RFC3986

    1.7K10发布于 2019-06-18
领券