关于Chrome支持http header最大长度限制的讨论-阿里云开发者社区

开发者社区> 努力滴码农> 正文

关于Chrome支持http header最大长度限制的讨论

简介: 关于Chrome支持http header最大长度限制的讨论
+关注继续查看

Created by Wang, Jerry, last modified on Nov 09, 2016

我们在前端访问ABAP的server的时候,通过OData协议访问一个API的时候,URL中能不能带单引号呢? 我们遇到一个bug,


(1) 在IE里url带了单引号:https://jerry.neo.ondemand.com/dps/odata.svc/Context?KaTeX parse error: Expected 'EOF', got '&' at position 14: orderby=title&̲filter=appUrl%20eq%20%‘CustomerEngagementCenter’%20and%20product%20eq%20’SAP_HYBRIS_CLOUD’%20and%20version%20eq%20’1611’%20and%20(system%20eq%20null%20or%20system%20eq%20’’)%20and%20locale%20eq%20’en-US’

(2) 在Chrome没有单引号: https://jerry.neo.ondemand.com/dps/odata.svc/Context?KaTeX parse error: Expected 'EOF', got '&' at position 14: orderby=title&̲filter=appUrl%20eq%20%27CustomerEngagementCenter%27%20and%20product%20eq%20%27SAP_HYBRIS_CLOUD%27%20and%20version%20eq%20%271611%27%20and%20(system%20eq%20null%20or%20system%20eq%20%27%27)%20and%20locale%20eq%20%27en-US%27


结果就是带单引号的URL不能被ABAP Server处理,直接是HTTP 400错误。所以我想问下,是不是按照OData的协议URL里是不能带单引号的?


我试了下,在Chrome里,地址栏敲’i042416’, 单引号会自动被encode成%27:


image.png


后台成功收到:


image.png

IE的话,不会 自动encode:


image.png


Server端还是能接到,只是不能正常显示:


image.png


昨天的问题,找到了,居然是IE对HTTP Request的header大小没有做限制,我们这个case里,Referer是个很长的链接。 我们的NGINX对header的buffer设置只有1K,所以直接就报400错误了,把buffer调大就解决了。


image.png


Referer很长,那换成Chrome不是一样很长么?Chrome就没问题?


Chrome的Referer只有主要的domain信息

image.png


IE会带上所有的参数:


image.png


这样就能解释通了。

我刚才测试发现Chrome对http get的header length没有限制:

我在ABAP server直接把接到的referer3 field的value echo回去:


image.png


在Chrome postman里拼再长的length,ABAP Server一样能收到并且返回给Chrome


image.png


Test url

http://jerry:50054/sap/bc/abap/zjerry

It is impossible to manually set header Referer in Postman.


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10098 0
阿里云将支持长江水利工程调度系统 涵盖82 座大型水库21 座大型泵站
12月11日,中国政府采购网信息显示,阿里云等公司组成的联合体将支持长江水利工程调度系统建设。该系统调度对象涵盖长江流域重要控制性水利工程,包括82 座大型控制性水库、21 座大型泵站等等。项目还将引入机器学习引擎建设,为实时洪水预报和防洪调度提供支撑。
8351 0
[20130915]12c新特性 varchar2支持32K长度.txt
[20130915]12c新特性 varchar2支持32K长度.txtoracle 12c以前如果字符串长度超过4000,必须使用blob或者clob类型。12c开始支持超过4000的字符串长度,提高一些应用的灵活性,达到32K,避免一些字段定义为clob,blob类型,提高处理能力。
904 0
支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
Nacos 在阿里巴巴起源于 2008 年五彩石项目,该项目完成了微服务拆分和业务中台建设,随着云计算和开源环境的兴起,2018 年我们深刻感受到开源软件行业的影响,因此决定将 Nacos 开源,输出阿里十年关于服务发现和配管管理的沉淀,推动微服务行业发展,加速企业数字化转型。
3954 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13895 0
nginx访问控制:如何通过map来控制http_x_forwarded_for访问限制
通过map修改访问限制 请求从lb过来,host已经变化,所以需要用http_x_forwarded_for来做限制。
3444 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11893 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
2497
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载