首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巨蟒。烧瓶,wfastCGI和IIS -非常短的url长度限制(或其他什么)

巨蟒。烧瓶,wfastCGI和IIS -非常短的url长度限制(或其他什么)
EN

Stack Overflow用户
提问于 2022-11-18 01:27:13
回答 1查看 24关注 0票数 0

我在带有IIS和wfastCGI的Windows2016Server上使用Python3.10.4和Flask。

为了进行测试,我将Python脚本简化到了最低限度:

代码语言:javascript
复制
from flask import Flask, request, abort, render_template
from functools import wraps

app = Flask(__name__, static_url_path='/dwapi')
app.config["APPLICATION_ROOT"] = "/dwapi"

@app.route("/dwapi")
def dwapi_index():
    return "Invalid URL Path"

@app.route("/dwapi/myroute/<startdate>/<propertyid>")
def get_data(startdate,propertyid):
    return "xxx"

if __name__ == "__main__":
    app.run()

当我使用URL时:

代码语言:javascript
复制
http://myservdwiis/dwapi/myroute/2021-8-01/80712,80804

它工作-浏览器显示"xxx“。

然后我使用这个更长的URL:

代码语言:javascript
复制
http://myservdwiis/dwapi/myroute/2021-8-01/80712,80804,53009,80602,80519,80517,80802,38025,80705,80514,80515,80516,80807,38026,80808,20001,38400,51022,51023,80522,38027,32010,80527,54130,54131,38456,38017,80520,80521,80528,80805,38018,80523,80524,08030,56120,56121,56122,56123,56124,98145,98142,98143,981

它返回:

代码语言:javascript
复制
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid

如果我从上面的URL中删除一个字符,它就能工作。

代码语言:javascript
复制
http://myservdwiis/dwapi/myroute/2021-8-01/80712,80804,53009,80602,80519,80517,80802,38025,80705,80514,80515,80516,80807,38026,80808,20001,38400,51022,51023,80522,38027,32010,80527,54130,54131,38456,38017,80520,80521,80528,80805,38018,80523,80524,08030,56120,56121,56122,56123,56124,98145,98142,98143,98

这将返回它应该返回的"xxx“。

这看起来不应该太长。IIS中没有设置任何限制(我可以看到)--它具有默认的2048限制。但上面只有306个字符,包括主机名和协议。

是什么限制了这一点,还是因为其他原因?

当我在我的Windows 10系统上(而不是通过IIS或wfastCGI )本地运行这个程序时,它没有这个问题。。

EN

回答 1

Stack Overflow用户

发布于 2022-11-21 03:18:06

除了iis设置之外,还可以设置注册表项以告知HTTP.sys允许更长的URL。默认情况下,HTTP.sys允许255个段的最大长度为每个260个字符。260个字符限制是造成这一问题的原因。

您可以在注册表中更改该设置。一旦您重新启动,url将工作。

登记处:

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters]
"UrlSegmentMaxLength"=dword:00000400

这将有效地将段长设置为1024。

更多信息,您可以参考这个链接:对长Url的响应400 (不良请求)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74483997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档